Исходники и презентации
This commit is contained in:
24
lessons/generics_and_reflection/private_fields_2/main.go
Normal file
24
lessons/generics_and_reflection/private_fields_2/main.go
Normal file
@ -0,0 +1,24 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type Data struct {
|
||||
value string
|
||||
}
|
||||
|
||||
func main() {
|
||||
data := Data{
|
||||
value: "it's a secret",
|
||||
}
|
||||
|
||||
field := reflect.ValueOf(&data).Elem().FieldByName("value")
|
||||
pointer := unsafe.Pointer(field.UnsafeAddr())
|
||||
strPtr := (*string)(pointer)
|
||||
|
||||
*strPtr = "it's not a secret"
|
||||
fmt.Println(data.value)
|
||||
}
|
||||
Reference in New Issue
Block a user