我最近问了这个问题,答案增加了我的理解,但他们并没有解决我遇到的实际问题。因此,我将尝试提出一个类似但不同的问题,如下所示。
假设我想访问rune
a 的随机元素string
。一种方法是:
func RuneElement(str string, idx int) rune {
var ret rune
for i, c := range str {
if i == idx {
return c
}
}
return ret // out of range -> proper handling is needed
}
如果我想多次调用这样的函数怎么办?我想我正在寻找的就像一个运算符/函数str[i]
(返回 a byte
),它返回第 -th 位置的rune
元素。i
为什么可以使用for ... range
但不能通过str.At(i)
例如函数访问此元素?