4.1. 프로그램언어 고(Go)에서의 상수 선언 방법

프로그램언어 고(Go)에서의 문자 상수 선언 방법

프로그램언어 고(Go)에서 문자 상수는 ”(작은 따옴표 2개)로 감싸주면 됩니다. 예를 들어 다음과 같이 선언할 수 있습니다.


var char1 byte = 'A'
var char2 byte = '가'

자세한 사항은 다음과 같습니다.

– Go언어에서 문자 상수는 byte 타입으로 선언합니다.
– 문자 상수는 작은 따옴표 2개(‘ ‘)로 감싸야 합니다.
– 문자 상수에는 문자 1개만 지정할 수 있습니다.
– 문자 상수에는 문자 뿐만 아니라 숫자, 기호 등 아스키 코드값을 가진 모든 문자를 사용할 수 있습니다.


var char3 byte = '3'
var char4 byte = '@'

– 유니코드 문자도 사용 가능합니다.


var char5 byte = '가'

– 문자 상수에 저장될 때 실제로 그 문자의 아스키 코드값이 저장됩니다.

예를 들어 ‘A’의 아스키 코드값은 65이기 때문에, char1 변수에는 실제로 65 숫자값이 저장됩니다.

이와 같이 Go 언어에서는 문자 상수를 선언하고 사용할 수 있습니다.

문자열을 나타내고 싶다면 “”(큰 따옴표 2개)를 사용하면 됩니다.

프로그램언어 고(Go)에서의 숫자 상수 선언 방법

고(Go)언어에서 숫자 상수를 선언하는 방법은 다음과 같습니다.


package main

import "fmt"

const (
    Big = 1 << 100
    Small = Big >> 99
)

func needInt(x int) int { return x*10 + 1 }
func needFloat(x float64) float64 {
    return x * 0.1
}

func main() {
    fmt.Println(needInt(Small))
    fmt.Println(needFloat(Small))
    fmt.Println(needFloat(Big))
}

– 상수는 const 키워드를 사용하여 선언합니다.
– 상수는 변수와 마찬가지로 타입을 명시할 수 있습니다.
– 만약 타입을 명시하지 않으면, 컴파일러가 값으로부터 타입을 유추합니다.

위의 예제에서는 다음과 같이 숫자 상수를 선언하고 사용하고 있습니다.

– Big과 Small이라는 이름의 숫자 상수를 선언합니다.
– Big은 1 쉬프트 연산자(<<)를 사용하여 2의 100승 값을, Small은 Big을 오른쪽 시프트 연산자(>>)를 사용하여 99만큼 시프트한 값입니다.
– main() 함수에서 이 상수들을 함수의 인자로 전달합니다. needInt()는 int형을, needFloat()은 float64형을 인자로 받습니다.

이와 같이 고(Go)언어에서는 const 키워드를 사용하여 숫자 상수를 선언하고, 타입을 명시할 수 있습니다. 또한 연산자를 사용하여 복잡한 숫자 상수 표현도 가능합니다.

프로그램언어 고(Go)에서의 부울 상수 선언 방법

프로그램언어 고(Go)에서 부울 상수를 선언하는 방법은 다음과 같습니다.


package main

import "fmt"

const (
    True = iota // 0
    False // 1
)

func main() {
    a := True
    b := False

    fmt.Println(a) // 0
    fmt.Println(b) // 1
}

구문 분석을 위해,

const 키워드를 사용하여 상수를 선언합니다.

True와 False라는 이름의 상수를 선언하고 iota를 사용하여 자동으로 0과 1이 할당됩니다.

이러한 방식으로 선언된 True와 False는 실제로 0과 1의 숫자값을 갖지만, 의미상 부울 값을 표현하는 상수가 됩니다.

main 함수에서 이 상수들을 변수에 할당하고 출력했을 때 0과 1이 출력되는 것을 확인할 수 있습니다.

이처럼 go언어에서는 별도의 bool 타입이 존재하지 않고, 정수값을 사용하여 부울 값을 표현합니다.

0은 false, 1은 true로 처리됩니다.

따라서 이러한 상수를 선언하여 가독성을 높이고, 부울 값을 더욱 명확하게 표현할 수 있습니다.

프로그램언어 고(Go)에서의 상수 그룹 선언 방법

고(Go)언어에서 상수 그룹을 선언하는 방법은 다음과 같습니다.

const (
    A = 1
    B
    C 
)

위와 같이 const 키워드를 사용하여 상수 그룹을 선언할 수 있습니다. 이런 형태의 선언을 상수 그룹(constant group)이라고 합니다.

여기서 주의할 점은 다음과 같습니다.

1. 상수 그룹 내에서는 const 키워드를 반복하여 사용할 필요가 없습니다.

2. 한 번 선언된 상수는 값을 변경할 수 없습니다.

3. 상수에 초기값을 줄 때 타입을 명시할 필요가 없습니다. 초기값의 타입이 자동으로 정해집니다.

4. 초기값을 주지 않은 상수는 이전 상수의 값을 그대로 사용합니다. 위 예제의 경우 B = 1, C = 1이 됩니다.

다음은 상수 그룹을 사용한 예제입니다.

const (
    Open = 1 
    Closed = 2
    Pending = 3
)

func getStatus(status int) string {
    switch status {
    case Open:
        return "Open"
    case Closed: 
        return "Closed"
    case Pending:
        return "Pending"
    default: 
        return "Unknown"
    }
}

위 코드에서는 상태를 나타내는 상수 그룹을 선언하고 이를 사용하여 상태 문자열을 반환하는 함수를 작성하였습니다.

이렇게 상수 그룹을 사용하면 변수명만으로도 의미를 이해하기 쉽고, 매직넘버(외워야 하는 숫자)를 사용하는 것보다 가독성이 좋습니다.

프로그램언어 고(Go)에서의 열거형 상수 선언 방법

프로그램언어 고(Go)에서 열거형 상수는 const 키워드를 사용하여 선언합니다. 열거형은 관련된 상수를 구룹핑하고 관리하기 위한 데이터 타입입니다.


const (
    Sunday = iota
    Monday
    Tuesday
    Wednesday 
    Thursday
    Friday 
    Saturday
)

위의 예제코드에서 보듯이 열거형은 const 키워드 뒤에 여는 소괄호 ( 를 하고 상수 이름과 값을 할당합니다.

여기서 주목할 점은 iota 입니다. iota는 열거형 상수를 위한 특별한 변수로 0부터 1씩 증가하는 정수값을 자동으로 생성합니다.

따라서 Sunday에는 0이 할당되고 Monday에는 1, Tuesday에는 2가 할당되는 식으로 값이 자동으로 지정됩니다.

이러한 방식을 통해 열거형 상수를 손쉽고 편리하게 선언하고 값을 관리할 수 있습니다.

또한 열거형에는 문자열, 실수 등 다양한 타입의 값과 복합 리터럴을 할당할 수도 있습니다.


const (
    Apple = "APPLE"
    Banana = 2.33
    Cherry = true 
)

위와 같이 문자열, 실수, 부울 값도 할당가능합니다.

열거형은 다른언어의 enum과 유사한 개념으로 일련의 관련된 상수 값을 편리하게 선언하고 관리할 수 있는 데이터 타입입니다.

프로그램 코드 가독성을 높이고 유지보수를 편리하게 해주는 유용한 기능이라고 볼 수 있습니다.

Leave a Comment