7. 열거형 사용하기
페이지 정보
작성자 관리자 댓글 0건 조회 3,137회 작성일 19-03-09 21:42본문
요일과 같은 연속되는 값을 가지는 상수를 선언할 때는 다음과 같이 한다.
package main
import "fmt"
func main() {
const Sunday = 0
const Monday = 1
const Tuesday = 2
const Wednesday = 3
const Thursday = 4
const Friday = 5
const Saturday = 6
const numberOfDays = 7
fmt.Println(Sunday)
}
const 키워드와 ()를 사용하면 const 키워드를 반복하지 않아도 된다.
package main
import "fmt"
func main() {
const (
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
numberOfDays = 7
)
fmt.Println(Sunday)
}
상수에 값을 일일이 대입하지 않고, 순서대로 생성하려면 iota 를 사용하면 된다.
package main
import "fmt"
func main() {
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
numberOfDays // 7
)
fmt.Println(Thursday) // 4
fmt.Println(numberOfDays) // 7
}
Sunday를 1부터 시작하고 싶다면 iota + 1을 대입하면 된다.
시프트 연산자나 곱셈 연산자를 사용하면 특정한 순서로 생성할 수 있다.
package main
import "fmt"
func main() {
const (
a = 1 << iota // a == 1 (1 << 0)
b = 1 << iota // b == 2 (1 << 1)
c = 1 << iota // c == 4 (1 << 2)
d = 1 << iota // d == 8 (1 << 3)
)
fmt.Println(a, b, c, d)
}
package main
import "fmt"
func main() {
const (
a = iota * 30 // a == 0 (0 * 30)
b = iota * 30 // b == 30 (1 * 30)
c = iota * 30 // c == 60 (2 * 30)
d = iota * 30 // d == 90 (3 * 30)
)
fmt.Println(a, b, c, d)
}
package main
import "fmt"
func main() {
const (
bit0, mask0 = 1 << iota, 1<<iota - 1 // bit0 == 1, mask0 == 0
bit1, mask1 // bit1 == 2, mask1 == 1
_, _ // iota == 2를 생략하여 bit2와 mask2 생략
bit3, mask3 // bit3 == 8, mask3 == 7
)
fmt.Println(bit0)
}
댓글목록
등록된 댓글이 없습니다.