如何在 Go 中“反向范围”遍历 a 的单个字符string
?
例如,给定s := "some string \u1222 whatever"
- 我想做类似的事情:
for i, v := ~reverse~ range s { }
请注意,我对通过标准库的解决方案感兴趣,而不必自己编写函数。我知道大量现有的图书馆可以做到这一点,但这无关紧要。此外 - 我不能使用len(s)
和做:
for i := len(s) - 1; i >= 0; i-- { }
因为 Go 内置len
函数仅返回字符串中的字节数(不适用于非 ASCII 字符串)。由于上述原因,我也无法执行指令提供的索引len(s) - k - 1
在哪里。k
range
UPD1:可以对 s 进行反向(从右到左)查找,因为我们可以通过每个字节或字节组的高位utf-8
rune
轻松识别s。rune
从The Go Programming Language
书: 如您所见,我们可以从最后一个字节开始,我们需要向左扫描最多 4 个字节才能得到一个.
rune
慕村225694
慕哥6287543
相关分类