Go for, range, ...args

for, range, …args

go에서는 반복문이 오직 단 하나!

for 뿐이다.

for in, forEach 그런거 없다.

for 하나면 된다.

직접 예제를 보도록 하자.

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int{
	for number := range numbers{
		fmt.Println(number)
	}
	return 1
}

func main() {
	superAdd(1,2,3,4,5,6,7,8,8,9,10)
}
// output
0
1
2
3
4
5
6
7
8
9

range 키워드는 Array 값을 numbers의 값을 반복시키기 위해 for에서 사용하는 키워드이다.

흡사 for in과 유사하다.

출력을 보면 이상하다다는 것을 느낄 수 있는데, 그 이유는 0부터 9까지 출력이 되고 있기 때문이다.

그 이유는 range의 반환 값을 하나만 받을 경우 index를 반환하기 때문인데, 두개를 넣어보자.

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int{
	for index,number := range numbers{
		fmt.Println(index,number)
	}
	return 1
}

func main() {
	superAdd(1,2,3,4,5,6,7,8,9,10)
}
// output
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

이번엔 number가 제대로 출력이 되는 것을 확인할 수 있다.

역시나 우리가 기존에 사용하던 for의 형태로 사용 또한 가능하다.

package main

import "fmt"

func superAdd(numbers ...int) int{
	for i:= 0; i<len(numbers); i++ {
		fmt.Println(numbers[i])
	}
	return 1
}

func main() {
	superAdd(1,2,3,4,5,6,7,8,9,10)
}

이를 위해 필요한 키워드는 오직 for 하나면 충분하다!

Reference

Nomad Coder - 니꼴라스 선생님



© 2022. by minkuk

Powered by minkuk