From: Robert Griesemer Date: Fri, 21 Sep 2012 19:53:59 +0000 (+1000) Subject: [release-branch.go1] reflect: reflect.Zero results are neither addressable nor settable X-Git-Tag: go1.0.3~169 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=40b5d5481a6dc3e877487923dcf9d81515ebb072;p=gostls13.git [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 »»» --- diff --git a/src/pkg/reflect/value.go b/src/pkg/reflect/value.go index 79476ad229..c44d408c6b 100644 --- a/src/pkg/reflect/value.go +++ b/src/pkg/reflect/value.go @@ -1713,10 +1713,11 @@ func ValueOf(i interface{}) Value { 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, // which represents no value at all. // 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 { if typ == nil { panic("reflect: Zero(nil)")