상수를 선언할 때는 const를 사용해서 정의합니다.
상수란 값이 변하지 않고 처음 선언할 때 지정한 값을 계속해서 사용하기 위해 값입니다.
변수와 상반된 값입니다.
iota 사용방법
Go에서는 const 안에서 사용할 수 있는 iota 식별자가 있습니다.
테이터 타입이 없는 정수를 연속으로 생성해줍니다.
package main
import "fmt"
const (
zero = iota
one = iota
two = iota
three = iota
)
func main() {
fmt.Println("zero: ", zero)
fmt.Println("one: ", one)
fmt.Println("two: ", two)
fmt.Println("three: ", three)
}
결과
zero:0
one:1
two:2
three:3
정수 0부터 1씩 증가하면서 값이 자동으로 설정되었습니다.
iota를 생략해서도 사용할 수 있습니다.
iota 생략 방법
package main
import "fmt"
const (
zero = iota
one
two
three
)
func main() {
fmt.Println("zero: ", zero)
fmt.Println("one: ", one)
fmt.Println("two: ", two)
fmt.Println("three: ", three)
}
한번 사용하면 그다음 상수에도 자동으로 적용이 됩니다.
iota는 상수마다 별도로 적용됩니다.
const (
zero = iota // 0
one = iota // 1
)
const (
two = iota // 0
three = iota // 1
)
식을 사용해서 상수에 대입할 수도 있습니다.
const (
zero = iota * iota // 0
one // 1
two // 4
three // 9
)
다른 값과 같이 사용할 수도 있습니다.
const (
zero = "zero" // zero
one = iota // 1
two = "two" // two
three = iota // 3
)
iota에 값을 지정하는 경우에는 인크리먼트 보다 대입한 값이 우선으로 적용됩니다.
const (
iota = "iota" // iota
zero = iota // iota
one // iota
two // iota
three // iota
)
iota는 단순하게 사용하는 경우가 많습니다.
간단한 플래그나 정의 값으로 사용합니다.
iota 응용 예제
const (
_ = iota // ignore first value by assigning to blank identifier
KB ByteSize = 1 << (10 * iota)
MB
GB
TB
PB
EB
ZB
YB
)
iota를 사용해 바이트 크기를 정의해놓은 샘플입니다.
단순하지만 응용하면 편리하게 사용할 수 있습니다.
댓글