Пропустить первый элемент массива в Голанге

У меня есть следующие сегменты кода

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

В Арре может быть более 1 элемента. Я хочу пропустить первый элемент Arr и продолжить цикл из второго элемента.

Например, если Арр содержит {1,2,3,4}. С запросом я просто хочу взять {2,3,4}.

Есть ли способ сделать это с запросом диапазона?

Ответ 1

Да. Используйте это

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

Или, если вы можете получить пустой срез:

for i := 1; i < len(Arr); i++ {
// something to do with Arr[i]
}

Ответ 2

Используйте стандартный цикл for или оператор среза:

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

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

Ответ 3

конвертировать в срез, а затем пропустить первый элемент (с запросом диапазона):

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)
    }
}

используя один 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)
    }
}

Ответ 4

В случае, если вы сделаете что-то другое с первым значением, вы можете сделать это:

for i, val := range Arr {
   if i == 0 {
       //Ignore or do something with first val   
   }else{
       // something have to do with val
   }
}