[카테고리:] <span>Go 언어</span>

안녕하세요. 언제나 휴일, 언휴예요.

이전 게시글에서는 const 키워드를 이용하여 상수를 표현하는 방법을 살펴보았어요. 이번 게시글에서는 const 키워드와 괄호, iota를 이용하여 상수를 열거하는 방법을 살펴보아요.

프로그래밍에서 특정 변수가 갖을 수 있는 값의 종류를 한정하여 사용하거나 여러 종류의 값을 여러 개의 상수명에 정의하여 사용하면 효과적일 때가 많이 있어요. 이전 게시글에서 얘기한 것처럼 가독성이 높아지고 변경이 쉬워집니다.

새 프로젝트를 만들어 하나 하나 표현해 보기로 해요.

[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가
// 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
[그림 2] iota를 사용하여 규칙적인 상수 열거하기 예제 실행 화면

Go 언어