英文:
Skip first element of an array in Golang
问题
我有以下的代码片段:
for _, val := range Arr {
// 与 val 相关的操作
}
在 Arr 中,可能有多个元素。我想跳过 Arr 的第一个元素,并从第二个元素开始继续循环。
例如,如果 Arr 包含 {1,2,3,4}。我只想取 {2,3,4}。
有没有办法在 range 查询中实现这个功能?
英文:
I have the following code segments
for _, val := range Arr {
// something have to do with val
}
In Arr , there might be more than 1 elements. I want to skip the first element of Arr and continue the loop from the second element.
For example if Arr contains {1,2,3,4}. With the query I just want to take {2,3,4}.
Is there a way to do that with the range query ?
答案1
得分: 51
是的。使用以下代码:
for _, val := range Arr[1:] {
// 对 val 进行操作
}
或者,如果你可能得到一个空切片:
for i := 1; i < len(Arr); i++ {
// 对 Arr[i] 进行操作
}
这样可以遍历切片 Arr
中的元素,并对每个元素进行操作。第一种方式使用了 Go 语言的 range 语法,从索引为 1 的元素开始遍历。第二种方式使用了传统的 for 循环,从索引为 1 的元素开始遍历。
英文:
Yes. Use this
for _, val := range Arr[1:] {
// something to do with val
}
Or in case you can get empty slice:
for i := 1; i < len(Arr); i++ {
// something to do with Arr[i]
}
答案2
得分: 8
使用标准的for
循环或切片操作符:
for _, val := range Arr[1:] {
// 做一些操作
}
// 或者
for i := 1; i < len(Arr); i++ {
val = Arr[i]
// 做一些操作
}
英文:
Use a standard for
loop or the slice operator:
for _, val := range Arr[1:] {
// Do something
}
// Or
for i := 1; i < len(Arr); i++ {
val = Arr[i]
// Do something
}
答案3
得分: 2
将代码翻译为切片后跳过第一个元素(使用范围查询):
package main
import "fmt"
func main() {
Arr := [...]int{1, 2, 3, 4}
for _, val := range Arr[1:] {
fmt.Println(val)
}
}
使用索引跳过第一个元素(使用范围查询):
package main
import "fmt"
func main() {
Arr := [...]int{1, 2, 3, 4}
for i, val := range Arr {
if i == 0 {
continue
}
fmt.Println(val)
}
}
使用一个布尔变量跳过第一个元素(使用范围查询):
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)
}
}
英文:
convert to slice then skip first element(with the range query):
package main
import "fmt"
func main() {
Arr := [...]int{1, 2, 3, 4}
for _, val := range Arr[1:] {
fmt.Println(val)
}
}
using index to skip first element(with the range query):
package main
import "fmt"
func main() {
Arr := [...]int{1, 2, 3, 4}
for i, val := range Arr {
if i == 0 {
continue
}
fmt.Println(val)
}
}
using one bool var to skip first element(with the range query):
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)
}
}
答案4
得分: 0
如果你想对第一个值做一些不同的操作,你可以这样做:
for i, val := range Arr {
if i == 0 {
// 忽略或对第一个值做一些操作
} else {
// 对 val 做一些操作
}
}
英文:
In case you what to do something different with the first value, you can do this:
for i, val := range Arr {
if i == 0 {
//Ignore or do something with first val
}else{
// something have to do with val
}
}
答案5
得分: -2
以下是要翻译的内容:
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
}
英文:
for _, val := range Arr[len(Arr)-(len(Arr)-1):] {
// something have to do with val
}
Instead use this
for _, val := range Arr[1:] {
// something have to do with val
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论