Golang 상수 const 식별자 iota 사용 방법 샘플

상수를 선언할 때는 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를 사용해 바이트 크기를 정의해놓은 샘플입니다.

단순하지만 응용하면 편리하게 사용할 수 있습니다. 

댓글