go-reflect

Jak znaleźć typ obiektu w Go?

Jak znaleźć typ obiektu w Go? W Pythonie po prostu używam typeof do pobierania typu obiektu. Podobnie W Go, czy istnieje spos ... Value fmt.Printf(reflect.TypeOf(lines)) } Nie jestem w stanie uzyskać typu linii obiektu, który jest tablicą łańcuchów.

Typ konwersji plastrów interfejsów

Jestem ciekaw, dlaczego Go nie przekształca implicite []T na []interface{}, Kiedy implicite konwertuje T na interface{}. Czy ... ie, aby napisać 4 dodatkowe linie kodu za każdym razem, gdy chcę wywołać funkcję, która może wziąć listę np. ints lub ciągów.

Używając reflect, jak ustawić wartość pola struct?

O trudnym czasie pracy z polami struct przy użyciu pakietu reflect. w szczególności, nie zorientowali się, jak ustawić warto ... ).Elem().Field(i).SetInt( i64 ) Dokumentuje również, że nazwy pól muszą być eksportowane (rozpoczynają się od dużej litery)

Typ konwersji plastrów interfejsów w go

Jestem ciekaw, dlaczego go nie przekształca implicite []T na []interface{}, Kiedy implicite konwertuje T na interface{}. Czy ... ie, aby napisać 4 dodatkowe linie kodu za każdym razem, gdy chcę wywołać funkcję, która może wziąć listę np. ints lub ciągów.

Jak uzyskać nazwę funkcji w Go?

Biorąc pod uwagę funkcję, czy możliwe jest uzyskanie jej nazwy? Powiedz: func foo() { } func GetFunctionName(i interface{} ... unctionName(foo)) } Powiedziano mi, że Czas trwania.FuncForPC pomogłoby, ale nie mogłem zrozumieć, jak z niego korzystać.

Wywołanie struktury i jej metody po nazwie w Go?

Znalazłem wywołanie funkcji MethodByName() tutaj http://golang.org/pkg/reflect/#Value.MethodByName ale to nie jest dokładnie ... t." Więc myślę, że najpierw potrzebuję czegoś w rodzaju StructByName(), a potem użyć go do MethodByName(), Czy to prawda!?

Sprawdzanie równości dwóch plastrów

Jak mogę sprawdzić, czy dwa plastry są równe?

Jak utworzyć nową instancję struktury z jej typu w czasie wykonywania w Go?

W Go, jak utworzyć instancję obiektu z jego typu w czasie wykonywania? Domyślam się, że najpierw musisz też zdobyć rzeczywisty type obiektu? Próbuję zrobić leniwą instancję, aby zapisać pamięć.

Jak porównać struct, slice, map are equal?

Chcę sprawdzić, czy dwie struktury są sobie równe, ale mam pewien problem: package main import ( "fmt" "reflect" ) type T ... :2, } fmt.Println(m1==m2) // m1 == m2 (map can only be compared to nil) } Http://play.golang.org/p/AZIzW2WunI

Dostęp do właściwości struct według nazwy

Oto prosty program go, który nie działa: package main import "fmt" type Vertex struct { X int Y int } func main() ... Vertex X używając jej nazwy. Jeśli zrobię v.X to działa, ale v["X"] nie działa. Czy ktoś może mi powiedzieć ,jak to zrobić?

range over interface {} który przechowuje kawałek

Biorąc pod uwagę scenariusz, w którym masz funkcję akceptującą t interface{}. Jeśli zostanie ustalone, że t jest plasterkiem, ... := range t { fmt.Println(value) } } } Go Playground Example: http://play.golang.org/p/DNldAlNShB

Iteracja przez pola struktury w Go

Zasadniczo, jedynym sposobem (jaki znam) na iterację przez wartości pól struct jest tak: type Example struct { a_number ... rzeć przez reflect pakiet, ale trafiłem w ścianę, bo nie wiem, co zrobić, gdy odzyskam reflect.ValueOf(*r).Field(0). Dzięki!

Dlaczego golang refleksji.MakeSlice Zwraca wartość nieadresowalną

Sprawdź poniższy fragment: Http://play.golang.org/p/xusdITxgT- Dlaczego to się dzieje? Bo jednym z moich argumentów musi ... cą reflect.MakeSlice, So result := reflect.MakeSlice(reflect.SliceOf(SomeType)) I błąd w : result musi być adresem slice.

Konwertuj między plastrami różnych typów

Dostaję kawałek bajtowy ([]byte) z gniazda UDP i chcę traktować go jako kawałek całkowity ([]int32) bez zmiany podstawowej tablicy i odwrotnie. W C (++) po prostu rzuciłbym między typami wskaźników; jak to zrobić w Go?

Jak porównać dwie funkcje dla równości wskaźników w najnowszym go weekly?

W Go, czy jest jakiś sposób, aby porównać dwa wskaźniki funkcji niezerowych, aby sprawdzić równość? Moim standardem równości ... Pointer()) af1 := reflect.ValueOf(AnotherFun) fmt.Println(sf1.Pointer() == af1.Pointer()) } Wyjścia: true false

Instancja nowego typu (Golang)

Czy ktoś może mi powiedzieć jak utworzyć nową instancję typu z łańcucha znaków? Odbić? Są przykłady, ale są dla starszych (Pre Go 1 wersje) języka [: (]

Get name of function using reflection in Golang

Próbuję użyć systemu odbicia Go, aby pobrać nazwę funkcji, ale otrzymuję pusty łańcuch podczas wywoływania metody Name w jej ... "reflect" func main() { typ := reflect.TypeOf(main) name := typ.Name() fmt.Println("Name of function" + name) }