猿问

包含符文给出奇怪的结果

我在 Go Playground 中运行此代码:

fmt.Println(strings.ContainsRune("\xa0", '\xa0'))

我想知道,为什么它输出false?根据文档,它说:

如果 Unicode 代码点 r 在 s 内,ContainsRune 返回 true。

在我看来,代码点就在那里,它false作为响应给出似乎很奇怪。


函数式编程
浏览 178回答 2
2回答

白衣染霜花

"\x0a" 不是 unicode 代码点。fmt.Println(strings.ContainsRune("\u00a0", '\u00a0'))正如预期的那样工作。

人到中年有点甜

因为它不是有效的 unicode 代码点,请查看 strings.IndexRunefunc IndexRune(s string, r rune) int {&nbsp; &nbsp; switch {&nbsp; &nbsp; case r < 0x80:&nbsp; &nbsp; &nbsp; &nbsp; .....&nbsp; &nbsp; default:&nbsp; &nbsp; &nbsp; &nbsp; .....&nbsp; &nbsp; }&nbsp; &nbsp; return -1}如果您尝试utf8.ValidString("\xa0"),它将返回 false。
随时随地看视频慕课网APP

相关分类

Go
我要回答