서론
코드 내에서 열거형 상수를 정의할 때, Go 언어는 이를 간편하게 처리할 수 있는 iota라는 키워드를 제공한다. iota는 상수의 값을 자동으로 증가시키는 특성을 가지며, 값의 증가 범위나 증감 간격을 설정하여 개발자가 반복적인 값을 일일이 지정할 필요 없이 쉽게 상수를 정의할 수 있게 해준다. 이 글에서는 iota 키워드의 기본 사용법과 다양한 활용 방법을 정리해본다.
기본 사용 예제
package main
import "fmt"
const (
Low = iota
Medium
High
)
func main() {
fmt.Println("Low:", Low) // Low: 0
fmt.Println("Medium:", Medium) // Medium: 1
fmt.Println("High:", High) // High: 2
}
iota는 각 상수에 대해 자동으로 0부터 시작하여 1씩 증가하는 값을 할당한다.
시작 값을 지정
package main
import "fmt"
const (
NotSupported = iota - 2
None
Low
Medium
High
)
func main() {
fmt.Println("NotSupported:", NotSupported) // NotSupported: -2
fmt.Println("None:", None) // None: -1
fmt.Println("Low:", Low) // Low: 0
fmt.Println("Medium:", Medium) // Medium: 1
fmt.Println("High:", High) // High: 2
}
iota - 2를 사용하여 iota의 기본값을 변경하고, 이를 통해 상수들의 값을 -2부터 시작하도록 설정할 수 있다.
중간 값 건너뛰기
package main
import "fmt"
const (
OK = iota + 200
Created
Accepted
_
NoContent
UseProxy = iota + 300
_
TemporaryRedirect
)
func main() {
fmt.Println("OK:", OK) // OK: 200
fmt.Println("Created:", Created) // Created: 201
fmt.Println("Accepted:", Accepted) // Accepted: 202
fmt.Println("No Content:", NoContent) // No Content: 204
fmt.Println("Use Proxy:", UseProxy) // Use Proxy: 305
fmt.Println("Temporary Redirect:", TemporaryRedirect) // Temporary Redirect: 307
}
_를 사용하여 중간 값을 건너뛸 수 있으며, 중간에 iota를 다시 할당하여 값을 새로운 범위에서 다시 시작할 수 있다.
증감 간격 지정
package main
import "fmt"
const (
FirstPage = (iota * 2) + 1
SecondPage
ThirdPage
)
func main() {
fmt.Println("FirstPage:", FirstPage) // FirstPage: 1
fmt.Println("SecondPage:", SecondPage) // SecondPage: 3
fmt.Println("ThirdPage:", ThirdPage) // ThirdPage: 5
}
곱셈을 사용하여 증감 간격을 설정할 수 있다.
'Language > Go' 카테고리의 다른 글
[golang] 파일 잠금으로 프로그램 중복 실행 방지하기 (0) | 2024.11.12 |
---|---|
[golang] 현재 운영 체제 확인하기 (0) | 2024.11.11 |
[golang] sync.WaitGroup으로 고루틴 작업 기다리기 (0) | 2024.11.09 |
[golang] html/template 패키지로 동적 페이지 처리하기 (3) | 2024.11.07 |
[golang] json.Marshal에서 HTML 이스케이프 문제 (3) | 2024.10.31 |