From: Rob Pike Date: Mon, 4 Jul 2011 01:45:31 +0000 (+1000) Subject: reflect: allow Len on String values. X-Git-Tag: weekly.2011-07-07~43 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=db0e3580225ef11a3a8be0de608cb56ddd4aee55;p=gostls13.git reflect: allow Len on String values. It's probably just an oversight that it doesn't work, perhaps caused by analogy with Cap. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/4634125 --- diff --git a/src/pkg/reflect/value.go b/src/pkg/reflect/value.go index 889d9455bd..bfeb3267c7 100644 --- a/src/pkg/reflect/value.go +++ b/src/pkg/reflect/value.go @@ -933,7 +933,7 @@ func (v Value) Kind() Kind { } // Len returns v's length. -// It panics if v's Kind is not Array, Chan, Map, or Slice. +// It panics if v's Kind is not Array, Chan, Map, Slice, or String. func (v Value) Len() int { iv := v.internal() switch iv.kind { @@ -945,6 +945,8 @@ func (v Value) Len() int { return int(maplen(iv.word)) case Slice: return (*SliceHeader)(iv.addr).Len + case String: + return (*StringHeader)(iv.addr).Len } panic(&ValueError{"reflect.Value.Len", iv.kind}) }