GO #3 - 변수(Variables)와 상수(Constants)에 관하여

Corner·2022년 5월 15일
0

Go

목록 보기
4/9
post-thumbnail

👉 이전 포스팅글
https://velog.io/@corner3499/series/Go

변수(Variables)와 상수(Constants)

Javascript를 했다면

상수(Constants)는 const

변수(Variables)는 let으로 이해하면 됩니다.

상수(Const) 선언 방법

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)

변수(Variables) 선언 방법

변수 선언하는 방법은 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 밖에서도 선언할 수 있습니다.

:= 방식은 오로지 변수에만 적용이 가능합니다.

profile
Full-stack Engineer. email - corner3499@kakao.com,

0개의 댓글