안녕하세요. 언제나 휴일, 언휴예요.
이전 게시글에서는 const 키워드를 이용하여 상수를 표현하는 방법을 살펴보았어요. 이번 게시글에서는 const 키워드와 괄호, iota를 이용하여 상수를 열거하는 방법을 살펴보아요.
프로그래밍에서 특정 변수가 갖을 수 있는 값의 종류를 한정하여 사용하거나 여러 종류의 값을 여러 개의 상수명에 정의하여 사용하면 효과적일 때가 많이 있어요. 이전 게시글에서 얘기한 것처럼 가독성이 높아지고 변경이 쉬워집니다.
새 프로젝트를 만들어 하나 하나 표현해 보기로 해요.
// Example itoa 사용 package main import "fmt" func main() { const ( JAN = iota + 1 FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ) //월 fmt.Println("JAN:", JAN) fmt.Println("JUL:", JUL) fmt.Println("DEC:", DEC) const ( c0 = iota * 10 c1 = iota * 10 c2 = iota * 10 c3 = iota * 10 c4 = iota * 10 )//10씩 증가하는 상수 fmt.Println("c1:", c1) fmt.Println("c1:", c2) fmt.Println("c1:", c3) fmt.Println("c1:", c4) }
const 키워드와 ( )를 사용하여 여러 개의 상수를 정의할 때 상수명 뒤에 초기값 표현에 iota를 지정하면 첫번째 상수값은 0으로 정의하고 이후의 상수값은 설정하지 않아도 순차적으로 1씩 증가한 값으로 설정합니다.
- 첫번째 상수명에 iota로 상수값을 지정하여 1월부터 12월까지 상수 정의하기
const ( JAN = iota + 1 FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ) //월 fmt.Println("JAN:", JAN) fmt.Println("JUL:", JUL) fmt.Println("DEC:", DEC)
출력 결과는 다음과 같아요.
JAN: 1 JUL: 7 DEC: 12
iota에 같은 연산으로 값을 지정하는 표현으로 여러 개의 규칙적인 상수를 열거할 수도 있어요.
- iota*10 을 상수값으로 지정하여 10씩 증가하는 상수 정의하기
const ( c0 = iota * 10 c1 = iota * 10 c2 = iota * 10 c3 = iota * 10 c4 = iota * 10 )//10씩 증가하는 상수 fmt.Println("c1:", c1) fmt.Println("c1:", c2) fmt.Println("c1:", c3) fmt.Println("c1:", c4)
출력 결과는 다음과 같아요.
c1: 10 c1: 20 c1: 30 c1: 40