Go language provides inbuilt support implementation of run-time reflection and allowing a program to manipulate objects with arbitrary types with the help of reflect package. The reflect.Interface() Function in Golang is used to get the v’s current value as an interface{}. To access this function, one needs to imports the reflect package in the program.
Syntax:
func (v Value) Interface() (i interface{})Parameters: This function accept only one parameter.
- i : This parameter is the interface{} type
Return Value: This function returns v’s current value as an interface{}.
Below examples illustrate the use of the above method in Golang:
Example 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) } |
Output:
&[1 4 9 16]
Example 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) } |
Output:
Our value is a type of : slice With the elements of : [a b c j, k, l]