Go의 상수 배열
Jay Singh
2023년1월30일
Go 개발자는 설정을 위해 전역 변수 대신 전역 상수를 사용하는 데 상당히 능숙합니다. 그러나 좀 더 복잡한 유형의 상수 버전을 구성할 때 문제가 발생합니다.
Go 컴파일러를 사용하여 배열, 맵 또는 슬라이스 상수를 만들 수 없습니다.
Go의 상수는 정확히 상수입니다. 함수에서 지역으로 지정된 경우에도 컴파일 시 생성되며 정수, 문자(룬), 문자열 또는 부울만 될 수 있습니다.
컴파일 시간 제약 때문에 이를 정의하는 표현식은 컴파일러가 평가할 수 있는 상수 표현식이어야 합니다.
이 기사에서는 상수 배열을 만드는 대체 방법에 대해 설명합니다.
Go에서 const
함수를 사용하여 상수 배열 확인
상수 배열과 슬라이스는 Go에서 지원되지 않습니다. Go에서는 빌드 시 상수 값이 생성되기 때문입니다.
런타임에 배열 또는 슬라이스는 항상 평가됩니다. 결과적으로 다음 프로그램은 컴파일 오류를 생성합니다.
package main
import "fmt"
func main() {
const a = [1]int{1}
fmt.Println(const a)
}
출력:
const initializer [1]int literal is not a constant
Go에서 [...]
연산자를 사용하여 상수 배열 선언
[]
대신 [...]
을 사용하면 슬라이스가 아닌 (고정 크기) 배열을 얻을 수 있습니다. 결과적으로 값은 고정된 것이 아니라 크기입니다.
package main
import "fmt"
func main() {
a := [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(a)
}
출력:
[1 2 3 4 5 6 7 8 9]