2016-05-25 2 views
2

У меня есть следующие сегменты кодаПропустить первый элемент массива в Golang

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

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

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

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

ответ

8

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

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

Это не работает 'диапазон перевернутых срезов' –

+0

@ T.Claverie Хороший улов. Я отредактировал его. Я использовал len (Arr) Забыл отредактировать другую часть. – khrm

+0

Достаточно первой версии. Это более идиоматично и в дороге. –

5

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

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

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

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

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

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

for i, val := range Arr { 
    if i == 0 { 
     //Ignore or do something with first val 
    }else{ 
     // something have to do with val 
    } 
} 
Смежные вопросы