我有以下代码段
for _, val := range Arr {
// something have to do with val
}
在 Arr 中,可能有多个元素。我想跳过 Arr 的第一个元素,并从第二个元素继续循环。
例如,如果 Arr 包含{1,2,3,4}。通过查询我只想采用{2,3,4}。
有没有办法用范围查询来做到这一点?
答案 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
}