gpt4 book ai didi

go - 我可以使用c:= range 遍历一个字符串,但仅使用字符而不使用索引吗?

转载 作者:行者123 更新时间:2023-12-01 22:44:33 24 4
gpt4 key购买 nike

基本上,我想遍历字符串以获取每个字符并对该字符进行处理。但是,当我尝试遍历字符串时,我必须为字符的索引提供一个变量,为字符本身提供一个变量,即。 for pos, char := range myString {*do something*}。我该如何简单地分配字符本身而不必分配索引?

最佳答案

for循环的range形式在 slice 或映射上进行迭代。

在 slice 上进行范围调整时,每次迭代都会返回两个值:

  • 第一个是 slice 的索引;第二个是 slice 的索引。
  • 第二个是该索引处元素的副本。

  • 假设我们有一个函数来验证数字是否为 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的示例。您可以使用字符串替换数组,并迭代字符串的字节。

    关于go - 我可以使用c:= range <string>遍历一个字符串,但仅使用字符而不使用索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60327589/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com