1
0
mirror of https://github.com/golang/go synced 2024-11-15 11:30:36 -07:00

[release-branch.go1] reflect: reflect.Zero results are neither addressable nor settable

««« backport 21130d62eeb0
reflect: reflect.Zero results are neither addressable nor settable

This could be deduced from "The Laws of Reflection" but it seems
worthwhile highlighting it.

R=r
CC=golang-dev
https://golang.org/cl/6350073

»»»
This commit is contained in:
Robert Griesemer 2012-09-22 05:53:59 +10:00
parent ecd62d606a
commit 40b5d5481a

View File

@ -1713,10 +1713,11 @@ func ValueOf(i interface{}) Value {
return Value{typ, unsafe.Pointer(eface.word), fl} return Value{typ, unsafe.Pointer(eface.word), fl}
} }
// Zero returns a Value representing a zero value for the specified type. // Zero returns a Value representing the zero value for the specified type.
// The result is different from the zero value of the Value struct, // The result is different from the zero value of the Value struct,
// which represents no value at all. // which represents no value at all.
// For example, Zero(TypeOf(42)) returns a Value with Kind Int and value 0. // For example, Zero(TypeOf(42)) returns a Value with Kind Int and value 0.
// The returned value is neither addressable nor settable.
func Zero(typ Type) Value { func Zero(typ Type) Value {
if typ == nil { if typ == nil {
panic("reflect: Zero(nil)") panic("reflect: Zero(nil)")