GO언어의 구문과 자료형 그리고 변수에 대해 알아보도록 하겠습니다. GO언어는 언어의 장벽이 그렇게 높지 않기 때문에 금방 배우실 수 있습니다. 특히나 C언어를 주로 이용하여 개발을 하셨던 분이거나 익숙하시다면 더욱이 GO언어가 쉽다고 느낄 수 있습니다.

GO언어의 구문

주석 처리 할때, 한줄 주석은 (//), 여러 줄 주석은 (/* */)으로 합니다. 들여쓰기는 일반적으로 탭을 사용하지만 이부분은 크게 신경쓰지 않으셔도 됩니다. 그 이유는 Format이라는 기능을 이용해 일괄적으로 다 맞추어주기 때문이죠. 이 부분은 아래에서 설명하겠습니다.

GO언어에서 코드블록을 시작하는 중괄호의 위치가 중요한데, 중괄호의 위치는 시작하는 코드와 꼭 같은 줄이여야 합니다. 문장의 끝에 보이지는 않지만 (;)을 붙이기 때문입니다. 그렇기 때문에 같은 줄에 중괄호가 존재하지 않는다면 에러가 난답니다. 예는 아래와 같습니다.

go3

위와 같이 코드를 func main() { 으로 시작하는 것이 올바른 구문입니다. 하지만 아래와 같이 코드를 짜게 된다면 에러가 발생하여 실행이 되지 않으니 주의해야한답니다.

go4

위와 같은 예는 실행이 되지 않습니다. 이렇게까지 맞쳐야 하는 가장 큰 이유는 사람들과의 코드 스타일을 맞추기 위해라고 들었던 것 같습니다. 하지만 이런것이 불편하다면, GO놀이터에선 Format버튼을 누르면 되고 GO를 설치했다면, 코드 실행 전 gofmt -w 파일이름.go 한 줄 적고 실행하면 자동으로 맞춰준답니다. 그렇다면 간단하게 Hello를 출력해볼까요 ?

go5

자료형 및 변수

GO언어에서 자료형은 정적 자료형이지만 동적 자료형처럼 사용할 수 있습니다.

var x int 
var arr [5]int // 배열  

그리고 변수 선언과 동시에 값을 할당하며, 정적 자료형이지만 자료를 보고 추론하는 기능이 있어서 자료형을 생략해도 된답니다.

var x int = 10 // 선언과 동시에 값 할당 
var i = 10 // 자료형 추론

함수에서 자료형의 표현은 아래와 같습니다.

func(int , int) // 두 정수를 인자로 받는 함수
func(int) int // 하나의 정수를 인자로 받고 하나의 정수를 반환하는 함수 
func(int , func(int, int)), func(int) int 
// 정수와 두 정수를 받아들이는 함수를 받고, 정수 하나를 받고 정수를 반환하는 함수를 반환 

GO에서 포인트 선언을 할 수 있는데, 아래와 같이 선언 할 수 있습니다.

var p *int

자료형 관련 주의 사항이 하나 있는데, int와 uint는 환경에 따라 32비트일 수 도 있고, 64비트일 수 도 있습니다. 그래서 반드시 64비트여야 한다면 int64나 uint65를 이용해야합니다.

자료형 추론

위에서 GO에서는 자료형이 무엇인지 알 수 있는 경우에는 자료형을 생략 가능하다고 했습니다. 예는 아래와 같습니다.

var i = 10
var p = &i // i의 주소값을 p에 저장 

또한 var 키워드도 생략이 가능합니다 대신에 = 대신 := 를 사용해야 합니다.

i := 10 
p := &i

GO언어가 약간 생소하게 다가오지만 그래도 할만한것 같네요. 다음 포스팅에선 Go의 기본 문법에 대해 자세하게 다루겠습니다.