Go for, range, ...args
in Programming Language on Go
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 - 니꼴라스 선생님