diff options
author | Rob Pike <r@golang.org> | 2011-07-04 11:45:31 +1000 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2011-07-04 11:45:31 +1000 |
commit | db0e3580225ef11a3a8be0de608cb56ddd4aee55 (patch) | |
tree | ac59271666fba536f068ca5cbf3cd469f63c0655 | |
parent | 8c7a73bbbba1c6a374d3ab334e378299c6c4236b (diff) | |
download | go-db0e3580225ef11a3a8be0de608cb56ddd4aee55.tar.gz go-db0e3580225ef11a3a8be0de608cb56ddd4aee55.zip |
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
-rw-r--r-- | src/pkg/reflect/value.go | 4 |
1 files changed, 3 insertions, 1 deletions
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}) } |