Why Range Over String Returns Runes, Byte by Index
According to the Go documentation and our own tests, when ranging over a string, the elements obtained are of type rune, whereas indexing into the string using str[index] yields bytes.
The core reason for this distinction stems from the definition of the string type. A string represents a sequence of bytes, and accessing individual bytes is possible through indexing.
另一方面,range子句用于for语句中,它允许遍历string中的Unicode码点。从0字节索引开始,迭代将返回每个UTF-8编码码点的第一个字节索引,以及对应的码点值(rune类型)。
如果您希望遍历字符串中的字节而不是码点,有几种选择:
这些替代方法提供了对字节的直接访问,而不会牺牲代码的可读性。
以上是为什么 Go 中的字符串范围查找返回符文,而索引返回字节?的详细内容。更多信息请关注PHP中文网其他相关文章!