Исходники и презентации
This commit is contained in:
25
lessons/generics_and_reflection/reflect_elem/main.go
Normal file
25
lessons/generics_and_reflection/reflect_elem/main.go
Normal file
@ -0,0 +1,25 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var value float64 = 3.14
|
||||
v := reflect.ValueOf(&value) // copy of value
|
||||
|
||||
fmt.Println("type of v:", v.Type())
|
||||
fmt.Println("settability of v:", v.CanSet())
|
||||
fmt.Println("addresability of v:", v.CanAddr())
|
||||
|
||||
fmt.Println("type of v.Elem():", v.Elem().Type()) // dereference
|
||||
fmt.Println("settability of v.Elem():", v.Elem().CanSet()) // dereference
|
||||
fmt.Println("addresability of v.Elem():", v.Elem().CanAddr()) // dereference
|
||||
|
||||
v.Elem().SetFloat(2.7)
|
||||
|
||||
fmt.Println(v.Elem().Addr())
|
||||
fmt.Println("value:", value)
|
||||
fmt.Println("address:", &value)
|
||||
}
|
||||
Reference in New Issue
Block a user