为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

for 循环的range形式迭代切片或映射。

在切片上进行测距时,每次迭代都会返回两个值:

  1. 第一个是切片的索引;

  2. 第二个是该索引处元素的副本。

假设我们有一个验证数字是否为 a 的函数prime number,并且我们有一个包含候选数字的数组,然后我们可以通过两种不同的方式调用该函数:

var prime []int = []int{2, 3, 5, 7, 11, 13, 17, 19, 23}


func TestIsPrimeByValue(t *testing.T) {

    for _, item := range prime {

        if !IsPrime(item) {

            t.Fail()

        }

    }

}


func TestIsPrimeByIndex(t *testing.T) {

    for i := range prime {

        if !IsPrime(prime[i]) {

            t.Fail()

        }

    }

}

在第一个循环中,我们正在迭代value数组。

在第二个循环中,我们正在迭代index数组。这是一个例子int。您可以用字符串替换数组并迭代字符串的字节。


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号