Preguntas etiquetadas con go-reflect

14
¿Cómo encontrar el tipo de un objeto en Go?
¿Cómo encuentro el tipo de un objeto en Go? En Python, solo uso typeofpara buscar el tipo de objeto. Del mismo modo, en Go, ¿hay alguna manera de implementar lo mismo? Aquí está el contenedor desde el que estoy iterando: for e := dlist.Front(); e != nil; e = e.Next() …
387 go  go-reflect 


6
Escriba segmentos de conversión de interfaces
Tengo curiosidad por qué Go no se convierte implícitamente []Ta []interface{}cuándo se convertirá implícitamente Ta interface{}. ¿Hay algo no trivial en esta conversión que me estoy perdiendo? Ejemplo: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build se …


3
Iterar a través de los campos de una estructura en Go
Básicamente, la única forma (que yo sepa) de iterar a través de los valores de los campos de a structes así: 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 …
107 go  go-reflect 


2
¿Cómo obtener el nombre de una función en Go?
Dada una función, ¿es posible obtener su nombre? Decir: func foo() { } func GetFunctionName(i interface{}) string { // ... } func main() { // Will print "name: foo" fmt.Println("name:", GetFunctionName(foo)) } Me dijeron que runtime.FuncForPC ayudaría, pero no entendí cómo usarlo.

3
rango sobre la interfaz {} que almacena un segmento
Dado el escenario en el que tiene una función que acepta t interface{}. Si se determina que tes una rebanada, ¿cómo puedo rangesuperar esa rebanada? 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 …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.