👉 이전 포스팅글
https://velog.io/@corner3499/series/Go
Javascript를 했다면
상수(Constants)는 const
변수(Variables)는 let으로 이해하면 됩니다.
func main() {
const name = "corner"
}
이렇게 명시할 수 있지만, 이 코드는 "타입이 없는 상수"라고 정의할 수 있습니다.
Go 언어는 Type 언어이기 떄문에 어떤 타입을 가지고 있는지를 명시해주어야 합니다.
Java나 C언어 처럼 String, Boolean 등 적어야합니다.
하지만 조금 특이하게도 변수명 뒤에 타입을 지정합니다.
func main() {
//const name = "corner" // 타입이 없는 상수
const name string = "corner" // 타입 선언
}
당연하게도, boolean 타입에 String 값을 넣으면 오류가 발생합니다.
func main() {
//const name = "corner" // 타입이 없는 상수
const name bool = "corner" // 잘못된 선언
}
또한, 상수로 선언한 값을 다른 값으로 변환할 수 없습니다.
const name string = "corner"
name = "king" // 오류 발생 지점
fmt.Println(name)
변수 선언하는 방법은 var
으ㄹ 사용합니다.
func main() {
var name string = "corner"
name = "hong"
fmt.Println(name)
}
이 문법은 매우 기초적인 방법입니다.
특별하게도 Go에서는 다른 방법도 가능합니다.
func main() {
name := "corner"
name = "hong"
fmt.Println(name)
}
name := ".."
이렇게도 선언할 수 있습니다. 이 축약형 방식은 위 변수 선언 코드 방식과 같은 뜻을 의미합니다.
하지만 이 변수는 값을 변경할 수 있지만, 타입을 변경할 수는 없습니다.
예를 들어..
func main() {
name := true
name = "hong" // error
fmt.Println(name)
}
name := true
boolean 타입의 name 이라는 변수가 true 값을 가지도록 선언하고, 밑에서 name 이라는 변수에 String 값을 넣게되면 오류가 발생합니다.
그리고 이 축약형 변수 선언은 func 내에서만 가능합니다. func 밖에서는 사용할 수 없습니다.
축약형이 아니기만 한다면 func 밖에서도 선언할 수 있습니다.
:=
방식은 오로지 변수에만 적용이 가능합니다.