猿问

我可以使用 for c := range<string> 遍历字符串但只使用字符而不使用索引吗?

基本上我想遍历一个字符串来获取每个字符并用那个字符做一些事情。但是,当我尝试遍历字符串时,我必须为字符索引提供一个变量,为字符本身提供一个变量,即。for pos, char := range myString {*do something*}. 我如何简单地分配字符本身而不必分配索引?



Cats萌萌
浏览 119回答 1
1回答

白猪掌柜的

for 循环的range形式迭代切片或映射。在切片上进行测距时,每次迭代都会返回两个值:第一个是切片的索引;第二个是该索引处元素的副本。假设我们有一个验证数字是否为 a 的函数prime number,并且我们有一个包含候选数字的数组,然后我们可以通过两种不同的方式调用该函数:var prime []int = []int{2, 3, 5, 7, 11, 13, 17, 19, 23}func TestIsPrimeByValue(t *testing.T) {&nbsp; &nbsp; for _, item := range prime {&nbsp; &nbsp; &nbsp; &nbsp; if !IsPrime(item) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t.Fail()&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}func TestIsPrimeByIndex(t *testing.T) {&nbsp; &nbsp; for i := range prime {&nbsp; &nbsp; &nbsp; &nbsp; if !IsPrime(prime[i]) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t.Fail()&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}在第一个循环中,我们正在迭代value数组。在第二个循环中,我们正在迭代index数组。这是一个例子int。您可以用字符串替换数组并迭代字符串的字节。
随时随地看视频慕课网APP

相关分类

Go
我要回答