Go 언어 for 사용법
고(Golang)에서 for 구문을 사용하는 3가지 방법.
golang4/11/2024
고 언어(Golang)에 while
은 없습니다. 대신 for
를 while
처럼 사용할 수 있습니다.
for
혼자 쓰기
이 구문은 for true
와 같습니다. 반드시 break
를 걸어야 합니다. break
를 넣지 않으면 무한루프로 폭주합니다.
count := 3
for {
fmt.Println(count)
count--
if (count < 1) {
break
}
}
fmt.Println("Start!")
3
2
1
Start!
for
조건문
break
를 써 줄 필요는 없지만 변수 값을 바꾸는 코드는 반드시 포함해야 합니다. 변수 값을 바꾸지 않으면 역시 무한루프로 폭주합니다.
count := 3
for count > 0 {
fmt.Println(count)
count--
}
fmt.Println("Start!")
3
2
1
Start!
range
순회하기(iteration)
슬라이스(slice)를 순회할 수 있습니다.
count := []string{"3초", "2초", "1초"}
for i, s := range count {
fmt.Println(i, s)
}
fmt.Println("Start!")
0 3초
1 2초
2 1초
Start!
여기서 count는 스트링 3개로 구성된 슬라이스이며, range
를 이용해 슬라이스 요소를 순회할 수 있습니다. 다른 프로그래밍 언어와는 달리 in
같은 키워드를 쓰지 않고 일반적인 변수 할당처럼 :=
를 이용해 각 요소 값을 할당합니다. 주의할 점은 그냥 =
이 아니라 최초 할당 때 쓰는 :=
를 쓴다는 점입니다. 왜 변수를 재활용하지 않고 :=
를 쓰느냐 하는 점은 논란의 여지가 있는데, 그냥 for
에서 인덱스와 요소 할당은 새로운 변수처럼 할당한다고 생각하는 편이 좋습니다. 첫 번째 값 i
는 인덱스, s
는 요소 값입니다.
range
인덱스가 필요없을 때
인덱스가 필요없을 때는 변수 이름 대신 언더스코어 _
를 사용하면 인덱스가 할당되지 않습니다.
for _, s := range count {
fmt.Println(s)
}
range
인덱스만 필요할 때
인덱스만 필요하고 요소 값이 필요없다면 첫 번째 값만 할당받으면 됩니다. for i := range count
for i := range count {
fmt.Println(i)
}