Domande taggate «go-reflect»

14
Come trovare il tipo di un oggetto in Go?
Come trovo il tipo di un oggetto in Go? In Python, utilizzo solo typeofper recuperare il tipo di oggetto. Allo stesso modo in Go, c'è un modo per implementare lo stesso? Ecco il contenitore da cui sto ripetendo: for e := dlist.Front(); e != nil; e = e.Next() { lines …
387 go  go-reflect 


6
Digitare la conversione di sezioni di interfacce
Sono curioso di sapere il motivo per cui Go does't implicitamente convertito []Ta []interface{}quando sarà convertire implicitamente Ta interface{}. C'è qualcosa di non banale in questa conversione che mi manca? Esempio: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } …


3
Scorri i campi di una struttura in Go
Fondamentalmente, l'unico modo (che io conosca) per iterare attraverso i valori dei campi di a structè così: type Example struct { a_number uint32 a_string string } //... r := &Example{(2 << 31) - 1, "...."}: for _, d:= range []interface{}{ r.a_number, r.a_string, } { //do something with the d } …
107 go  go-reflect 


2
Come ottenere il nome di una funzione in Go?
Data una funzione, è possibile ricavarne il nome? Dire: func foo() { } func GetFunctionName(i interface{}) string { // ... } func main() { // Will print "name: foo" fmt.Println("name:", GetFunctionName(foo)) } Mi è stato detto che runtime.FuncForPC sarebbe stato d'aiuto, ma non sono riuscito a capire come usarlo.

3
intervallo sull'interfaccia {} che memorizza una fetta
Dato lo scenario in cui hai una funzione che accetta t interface{}. Se è determinato che tè una fetta, come faccio a rangesuperare quella fetta? func main() { data := []string{"one","two","three"} test(data) moredata := []int{1,2,3} test(data) } func test(t interface{}) { switch reflect.TypeOf(t).Kind() { case reflect.Slice: // how do I …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.