32 строки
465 Б
Go
32 строки
465 Б
Go
package reflect_test
|
|
|
|
import (
|
|
. "reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestIndirectPointers(t *testing.T) {
|
|
var m = map[string]int{}
|
|
m["x"] = 1
|
|
|
|
var a = &m
|
|
|
|
if ValueOf(a).Elem().Len() != 1 {
|
|
t.Errorf("bad map length via reflect")
|
|
}
|
|
|
|
var b struct {
|
|
Decoded *[3]byte
|
|
}
|
|
|
|
v1 := New(TypeOf(b.Decoded).Elem())
|
|
|
|
var bb [3]byte
|
|
bb[0] = 0xaa
|
|
|
|
v1.Elem().Set(ValueOf(bb))
|
|
|
|
if v1.Elem().Index(0).Uint() != 0xaa {
|
|
t.Errorf("bad indirect array index via reflect")
|
|
}
|
|
}
|