From 1811fac7cbceedfdc0eb0d77e81ddec05f4f4020 Mon Sep 17 00:00:00 2001
From: Rob Pike
"\uFFFD"
.
+
++string('a') // "a" +string(-1) // "\ufffd" == "\xef\xbf\xbd " +string(0xf8) // "\u00f8" == "ø" == "\xc3\xb8" +type MyString string +MyString(0x65e5) // "\u65e5" == "æ¥" == "\xe6\x97\xa5" ++
[]byte
(or
+the equivalent []uint8
) to a string type yields a
+string whose successive bytes are the elements of the slice. If
+the slice value is nil
, the result is the empty string.
-string(0x65e5) // "\u65e5" == "æ¥" == "\xe6\x97\xa5" +string([]byte{'h', 'e', 'l', 'l', '\xc3', '\xb8'}) // "hellø"
nil
, the result is the empty string.
+Converting a value of type []int
to a string type yields
+a string that is the concatenation of the individual integers
+converted to strings. If the slice value is nil
, the
+result is the empty string.
string([]int{0x767d, 0x9d6c, 0x7fd4}) // "\u767d\u9d6c\u7fd4" == "ç½éµ¬ç¿"
nil
,
-the result is the empty string.
+Converting a value of a string type to []byte
(or []uint8
)
+yields a slice whose successive elements are the bytes of the string.
+If the string is empty, the result is []byte(nil)
.
+
++[]byte("hellø") // []byte{'h', 'e', 'l', 'l', '\xc3', '\xb8'} ++
[]int
yields a
+slice containing the individual Unicode code points of the string.
+If the string is empty, the result is []int(nil)
.
-string([]byte{'h', 'e', 'l', 'l', 'o'}) // "hello" +[]int(MyString("ç½éµ¬ç¿")) // []int{0x767d, 0x9d6c, 0x7fd4}
-For strings, the "range" clause iterates over the Unicode code points
+For a value of a string type, the "range" clause iterates over the Unicode code points
in the string. On successive iterations, the index variable will be the
index of the first byte of successive UTF-8-encoded code points in the string, and
the second variable, of type int
, will be the value of
@@ -4777,5 +4804,6 @@ The following minimal alignment properties are guaranteed:
[]int
and []byte
are not implemented..