From de578dcdd682182c69efc8f9328c9bba500192b0 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 12 Nov 2018 11:25:58 -0800 Subject: [PATCH] spec: be clearer about definition of string length Adjusted spec to explicitly define the string length as the number of bytes of the string; the prose now matches the prose for arrays. Made analogous change for slices. Fixes #28736. Change-Id: I47cab321c87de0a4c482f5466b819b2cc8993fd1 Reviewed-on: https://go-review.googlesource.com/c/149077 Reviewed-by: Rob Pike Reviewed-by: Matthew Dempsky --- doc/go_spec.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index cc2bada913..098a92551a 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ @@ -823,6 +823,7 @@ particular architecture.

A string type represents the set of string values. A string value is a (possibly empty) sequence of bytes. +The number of bytes is called the length of the string and is never negative. Strings are immutable: once created, it is impossible to change the contents of a string. The predeclared string type is string; @@ -830,7 +831,7 @@ it is a defined type.

-The length of a string s (its size in bytes) can be discovered using +The length of a string s can be discovered using the built-in function len. The length is a compile-time constant if the string is a constant. A string's bytes can be accessed by integer indices @@ -846,8 +847,7 @@ string, &s[i] is invalid.

An array is a numbered sequence of elements of a single type, called the element type. -The number of elements is called the length and is never -negative. +The number of elements is called the length of the array and is never negative.

@@ -883,6 +883,7 @@ multi-dimensional types.
 A slice is a descriptor for a contiguous segment of an underlying array and
 provides access to a numbered sequence of elements from that array.
 A slice type denotes the set of all slices of arrays of its element type.
+The number of elements is called the length of the slice and is never negative.
 The value of an uninitialized slice is nil.
 

@@ -891,8 +892,7 @@ SliceType = "[" "]" ElementType .

-Like arrays, slices are indexable and have a length. The length of a -slice s can be discovered by the built-in function +The length of a slice s can be discovered by the built-in function len; unlike with arrays it may change during execution. The elements can be addressed by integer indices 0 through len(s)-1. The slice index of a -- 2.48.1