我最近问了this问题和答案增加了我的理解,但他们并没有解决我的实际问题。所以,我会试着问一个类似但不同的问题如下。访问字符串的随机符文元素,不用于...范围
假设我想访问string
的随机rune
元素。一种方法是:
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]
(返回byte
)的运算符/函数,它返回rune
元素的第i
位置。为什么这个元素可以使用for ... range
而不是像str.At(i)
这样的funtcion来访问?
如果你不想在每次调用中将'string'转换为'[] rune',你需要使用'[] rune' – JimB
@JimB但是,我的输入是一个字符串,我尽量避免转换字符串到'[]符文' –
我的观点是,你需要将一个'字符串'转换为'[]符文',以便为此编制索引。如果你不想重复转换'string',那么使用一个'[] rune'作为参数类型,然后转换一次。 – JimB