'안가르챠줌'인 줄 알았는데 나왔다, 변수!
<예제 코드>
package main
import "fmt"
var x, y, z int
var c, python, java bool
func main() {
fmt.Println(x, y, z, c, python, java)
}
<실행 결과>
0 0 0 false false false
변수 선언시 var
라는 키워드를 사용한다.
왠지 자바스크립트같아 친숙하다. 하지만 데이터 타입을 마지막에 명시하는 것은 잊지 않는다.(뒤에 데이터 타입을 지우고 실행하면 아래처럼 문법 에러가 난다.
<실행 결과>
prog.go:5:12: syntax error: unexpected newline, expecting type
prog.go:6:20: syntax error: unexpected newline, expecting type
int
타입에 경우 값을 할당하지 않으면 0이 자동할당되고, bool
타입의 경우 false가 자동할당된다.
예제 만드신 분이 c, python, java가 false라고 생각한 것 같다.
<예제 코드>
package main
import "fmt"
var x, y, z int = 1, 2, 3
var c, python, java = true, false, "no!"
func main() {
fmt.Println(x, y, z, c, python, java)
}
<실행 결과>
1 2 3 true false no!
선언하면서 동시에 초기화할 수 있다.
변수 x, y, z는 선언하면서 데이터 타입을 int
로 명시했지만,
변수 c, python, java는 데이터 타입을 명시하지 않고 생략했다.
bool, bool, string의 값을 그냥 넣어주니 초기 자료를 통해 자동으로 인식하고 데이터타입을 설정해준다.
예제 만드신 분이 c는 프로그래밍 언어의 아부지라 봐준 거 같다.
package main
import "fmt"
func main() {
var x, y, z int = 1, 2, 3
c, python, java := true, false, "no!"
fmt.Println(x, y, z, c, python, java)
}
반드시 함수 안에서라는 조건(!)에서는 :=
대입 연산자를 사용하여 var
와 데이터 형식을 생략하고 짧게 줄여 쓸 수 있다.
https://go-tour-kr.appspot.com/#11
https://go-tour-kr.appspot.com/#12
https://go-tour-kr.appspot.com/#13