상수는 변하지 않는 값을 말한다. 변수는 대입문을 통해서 값을 수시로 바꿀 수 있지만 상수는 초기화된 값이 변하지 않는다. 정수, 실수, 문자열 등 기본 타입들만 상수로 선언 될 수 있다. 상수로 사용될 수 있는 타입은 아래와 같다.
상수 선언 방식은 변수와 비슷하다. 변수(variable)를 뜻하는 var 대신 상수(constant)를 뜻하는 const 키워드를 사용한다는 점이 다르다.
const ConstVlaue int = 10
상수명 규칙은 변수명과 같다. 함수 외부에 선언되어 있고 첫 글자가 대문자인 상수는 패키지 외부로 공개되는 상수이다. 상수는 한 번 선언되면 그 값을 바꿀 수 없다. 상수는 값으로만 동작하기 때문에 대입문의 좌변에 올 수 없다.
package main
import "fmt"
func main() {
const C int = 10
var b int = C * 20
C = 20
fmt.Println(&C)
}
OUTPUT : Error
상수 선언 시 타입을 명시하지 않을 수 있다.
package main
import "fmt"
const PI = 3.14
const FloatPI float64 = 3.14
func main() {
var a int = PI * 100 // 오류 발생 X
var b int = FloatPI * 100 // 오류 발생 O
fmt.Println(a)
fmt.Println(b)
}