El lenguaje Go proporciona una implementación de soporte incorporada de la reflexión en tiempo de ejecución y permite que un programa manipule objetos con tipos arbitrarios con la ayuda del paquete de reflexión. La función reflect.Interface() en Golang se usa para obtener el valor actual de v como una interfaz{}. Para acceder a esta función, es necesario importar el paquete reflect en el programa.
Sintaxis:
func (v Value) Interface() (i interface{})Parámetros: Esta función acepta solo un parámetro.
- i: este parámetro es el tipo de interfaz{}
Valor devuelto: esta función devuelve el valor actual de v como una interfaz{}.
Los siguientes ejemplos ilustran el uso del método anterior en Golang:
Ejemplo 1:
// Golang program to illustrate // reflect.Interface() Function package main import ( "fmt" "reflect" ) // Main function func main() { t := reflect.TypeOf(5) //use of Interface method arr := reflect.ArrayOf(4, t) inst := reflect.New(arr).Interface().(*[4]int) for i := 1; i <= 4; i++ { inst[i-1] = i*i } fmt.Println(inst) }
Producción:
&[1 4 9 16]
Ejemplo 2:
// Golang program to illustrate // reflect.Interface() Function package main import ( "fmt" "reflect" ) // Main function func main() { var str []string var v reflect.Value = reflect.ValueOf(&str) v = v.Elem() v = reflect.Append(v, reflect.ValueOf("a")) v = reflect.Append(v, reflect.ValueOf("b")) v = reflect.Append(v, reflect.ValueOf("c"), reflect.ValueOf("j, k, l")) fmt.Println("Our value is a type of :", v.Kind()) vSlice := v.Slice(0, v.Len()) vSliceElems := vSlice.Interface() fmt.Println("With the elements of : ", vSliceElems) }
Producción:
Our value is a type of : slice With the elements of : [a b c j, k, l]
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA