go에는 파이썬과 다르게 변수와 상수가 공존하는데,
변수(variables)는 값을 변경 가능하다.
하지만 상수(constants)는 변수지만 값의 변경이 불가능하다.
자 이제 사용을 해보겠다.
go는 var인지 const인지도 선언을 해주어야 하지만, type도 선언을 해주어야 한다.
const로 작성해 내 이름을 출력하는 코드를 하나 적어보겠다.
file_name : main.go
pakage main
import "fmt"
func main() {
const name string = "han"
fmt.Println(name)
}
출력값 : han
만약 const를 선언한 것에서 다시 name을 다시 선언할려고 한다면 에러가 난다. 아래의 코드를 참조할 것.
file_name : main.go
pakage main
import "fmt"
func main() {
const name string = "han"
name = "kim"
fmt.Println(name)
}
출력값 : error
파이썬을 사용하던 나는 지금 타입을 쓸때마다 선언해주어야 한다는 것에 매우 불편함을 느꼈다.
그때 안것이 바로 아래의 코드이다.
file_name : main.go
pakage main
import "fmt"
func main() {
name := "han"
name = "kim"
fmt.Println(name)
}
출력값 : kim
':=' 는 축약형으로 타입을 값에 따라 타입을 찾아서 적용시켜준다. 값이 false라면 타입 bool을 자동 적용시켜준다.
만약 축약형으로 변수를 선언한 뒤 변수의 타입과 다른 타입을 다시 선언할려고 하면 에러가 발생할 것이다.
file_name : main.go
pakage main
import "fmt"
func main() {
name := false
name = "kim"
fmt.Println(name)
}
출력값 : error
또한 ':='는 func() 밖에서 사용이 불가능하다.
만약 밖에서 변수를 선언하고 싶다면,
var name bool = false
위와 같이 선언 변수 타입을 다 선언을 해주면 된다.