GO · 기초 문법
iota와 열거형
iota로 연속된 상수를 자동 생성합니다. 비트 시프트와 결합하면 비트 플래그 패턴을 구현할 수 있습니다.
기초 문법중급iotaconstenumbitflag
핵심 설명
iota로 연속된 상수를 자동 생성합니다. 비트 시프트와 결합하면 비트 플래그 패턴을 구현할 수 있습니다.
Go code
package main
import "fmt"
type Weekday int
const (
Sunday Weekday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
)
// 비트 플래그 패턴
type Permission int
const (
Read Permission = 1 << iota // 1
Write // 2
Execute // 4
)
func (p Permission) String() string {
s := ""
if p&Read != 0 { s += "r" }
if p&Write != 0 { s += "w" }
if p&Execute != 0 { s += "x" }
return s
}
func main() {
fmt.Println(Monday) // 1
perm := Read | Write
fmt.Println(perm) // rw
}학습 팁
iota는 const 블록 내에서만 유효하며, 새 블록이 시작되면 0으로 리셋됩니다.
주의할 점
iota의 첫 번째 값이 0이므로, 유효하지 않은 상태를 0으로 정의하면 초기화되지 않은 변수와 구분할 수 없습니다.
자주 묻는 질문
iota와 열거형란 무엇인가요?
iota 로 연속된 상수를 자동 생성합니다. 비트 시프트와 결합하면 비트 플래그 패턴을 구현할 수 있습니다.
iota와 열거형 학습 시 주의할 점은 무엇인가요?
iota 의 첫 번째 값이 0이므로, 유효하지 않은 상태를 0으로 정의하면 초기화되지 않은 변수와 구분할 수 없습니다.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.