22 lines
285 B
Go
22 lines
285 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"unsafe"
|
|
)
|
|
|
|
type eface struct {
|
|
typ unsafe.Pointer
|
|
val unsafe.Pointer
|
|
}
|
|
|
|
func main() {
|
|
var value int = 100
|
|
var i interface{} = value
|
|
fmt.Println("before:", i)
|
|
|
|
obj := (*eface)(unsafe.Pointer(&i))
|
|
*(*int)(obj.val) = 200
|
|
fmt.Println("after:", i)
|
|
}
|