Today
-
Yesterday
-
Total
-
  • Go : 열거형 상수
    Language/고 Go 2023. 12. 17. 00:01

    출처 : https://inf.run/tfefs


    상수를 이용할 때

    java에서의 enum 처럼

    열거된 상수들에 0부터 시작하는 번호를 붙여주는 iota 라는 것이 있다.

    iota의 사용 예시는 다음과 같다.

    iota를 사용하지 않고 상수만 선언해서 사용할 경우

    package main
    
    import "fmt"
    
    function main() {
    
    	const (
    		Jan = 1
    		Feb = 2
    		Mar = 3
    		Apr = 4
    		May = 5
    		Jun = 6
        )
        
    	fmt.Println(Jan)
    	fmt.Println(Feb)
    	fmt.Println(Mar)
    	fmt.Println(Apr)
    	fmt.Println(May)
    	fmt.Println(Jun)
    
    }

    출력 값


    위의 예제에 iota를 적용

    package main
    
    import "fmt"
    
    function main() {
    
    	const (
    		Jan = iota + 1
    		Feb
    		Mar
    		Apr
    		May
    		Jun
        )
        
    	fmt.Println("Jan ", Jan)
    	fmt.Println("Feb ", Feb)
    	fmt.Println("Mar ", Mar)
    	fmt.Println("Apr ", Apr)
    	fmt.Println("May ", May)
    	fmt.Println("Jun ", Jun)
    }

    출력값

    iota는 java의 enum과 같이 0부터 시작하기 때문에 시작 변수인 Jan이 1이 되기 위해 iota에 1을 더해주었다.

    iota를 할당해준 상수에서 부터 마지막 상수까지

    순서대로 0에서 시작하여 1씩 증가된 값이 변수에 할당된다.


    만약, enum에서 생략하고 싶은 범위가 있다면 해당하는 상수와 _를 치환해주면 생략할 수 있다.

    _는 java에선 없는 개념이라 생소했는데, go 언어를 주로 활용하는 분야에서는 굉장히 많이 사용된다고 한다.

    규칙적으로 증가하는 값이 자동으로 상수에 할당되기 때문에 규칙적으로 증가하는 값이 필요하고 중간에 필요 없는 구간이 있는 경우에 사용하면 좋을것 같다.

    package main
    
    import "fmt"
    
    func enumiota3() {
    
    	const (
    		Jan = iota + 1
    		Feb
    		_
    		Apr
    		May
    		Jun
        )
        
    	fmt.Println("Jan ", Jan)
    	fmt.Println("Feb ", Feb)
    	fmt.Println("Apr ", Apr)
    	fmt.Println("May ", May)
    	fmt.Println("Jun ", Jun)
    }

    출력 값

    'Language > 고 Go' 카테고리의 다른 글

    Go : Switch 조건문  (0) 2023.12.17
    Go : if 조건문  (0) 2023.12.17
    Go : 자료형 및 변수, 상수  (0) 2023.12.17
    Go : 여러개의 멀티 프로젝트 실행  (0) 2023.12.17
    Go : Windows11에서 Go 환경 셋팅  (0) 2023.12.17

Designed by Tistory / Custom by 얼거스