이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 08장 써머리입니다.
상수는 변하지 않는 값을 말한다.
구조체, 배열 등 기본타입(primative)가 아닌 타입에는 상수 사용 불가.
Go 에서 상수로 사용될 수 있는 타입은 아래와 같다.
상수의 선언 방식
const ConstValue int = 10
상수는 값으로만 동작하기 때문에 좌변에 올 수 없다.
변수는 값, 이름, 타입, 메모리 주소의 4가지 속성을 가지지만 상수는 메모리 주소가 없다.
const (
Red int = iota // 0
Blue int = iota // 1
Green int = iota // 2
)
const (
BitFlag1 uint = 1 << iota // 1 = 1 << 0
BitFlag2 uint // 2 = 1 << 1
BitFlag3 uint // 4 = 1 << 2
BitFlag4 uint // 8 = 1 << 3
)
const (
PI = 3.14
FloatPI float64 = 3.14
)
func main() {
var a int = PI * 100 // 314
var b int = FloatPI * 100 // Float와 정수 계산 불가로 에러 발생
}
리터럴이란 고정된 값, 값 자체로 쓰인 문구
var str string = "Hello World"
var i int = 0
i = 30
const PI = 3.14
var a int = PI * 100
// 위 코드는 컴파일 시점에 var a int = 314 로 변환된다.