我在 Go Playground 中運行此代碼:fmt.Println(strings.ContainsRune("\xa0", '\xa0'))我想知道,為什么它輸出false?根據文檔,它說:如果 Unicode 代碼點 r 在 s 內,ContainsRune 返回 true。在我看來,代碼點就在那里,它false作為響應給出似乎很奇怪。
2 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
"\x0a" 不是 unicode 代碼點。
fmt.Println(strings.ContainsRune("\u00a0", '\u00a0'))
正如預期的那樣工作。

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
因為它不是有效的 unicode 代碼點,請查看 strings.IndexRune
func IndexRune(s string, r rune) int {
switch {
case r < 0x80:
.....
default:
.....
}
return -1
}
如果您嘗試utf8.ValidString("\xa0"),它將返回 false。
- 2 回答
- 0 關注
- 201 瀏覽
添加回答
舉報
0/150
提交
取消