在Golang中跳过数组的第一个元素

时间:2016-05-25 06:23:02

标签: go

我有以下代码段

for _, val := range Arr {
    // something have to do with val
}

Arr 中,可能有多个元素。我想跳过 Arr 的第一个元素,并从第二个元素继续循环。

例如,如果 Arr 包含{1,2,3,4}。通过查询我只想采用{2,3,4}。

有没有办法用范围查询来做到这一点?

5 个答案:

答案 0 :(得分:19)

是。使用此

for _, val := range Arr[1:] {
// something have to do with val
}

s = len(Arr)
for _, val := range Arr[1:s] {
// something have to do with val
}

答案 1 :(得分:5)

使用标准for循环或切片运算符:

for _, val := range Arr[1:] {
    // Do something
}

// Or
for i := 1; i < len(Arr); i++ {
    val = Arr[i]
    // Do something
}

答案 2 :(得分:1)

转换为切片然后跳过第一个元素(使用范围查询):

package main

import "fmt"

func main() {
    Arr := [...]int{1, 2, 3, 4}
    for _, val := range Arr[1:] {
        fmt.Println(val)
    }
}

使用index跳过第一个元素(使用范围查询):

package main

import "fmt"

func main() {
    Arr := [...]int{1, 2, 3, 4}
    for i, val := range Arr {
        if i == 0 {
            continue
        }
        fmt.Println(val)
    }
}

使用一个bool var跳过第一个元素(使用范围查询):

package main

import "fmt"

func main() {
    Arr := [...]int{1, 2, 3, 4}
    first := true
    for _, val := range Arr {
        if first {
            first = false
            continue
        }
        fmt.Println(val)
    }
}

答案 3 :(得分:-1)

如果您要对第一个值执行不同的操作,可以执行以下操作:

let rec f3 = fun x -> if x = 0 then foo x else f3 x in ...

答案 4 :(得分:-1)

for _, val := range Arr[len(Arr)-(len(Arr)-1):] {
    // something have to do with val
}

改为使用

for _, val := range Arr[1:] {
    // something have to do with val
}