구글에서 만든 Go 라는 언어를 공부를 시작 하였습니다. 

이유는 그냥 구글이 만들어서 믿고 공부 해 보기로 했습니다. 



설치 

   ubuntu 에서는 apt-get install golang 하면 설치 끝


실행

================ main.go =================

package main


import "fmt"


func main() {

fmt.Printf("Hello world\n");

}


$ go run main.go



빌드 


$ go build main.go

$ ./main




IDE 

GO 언어의 IDE는 

http://geekmonkey.org/articles/20-comparison-of-ides-for-google-go

에서 참조 


저는 sublime-text와 interlliJ를 사용해 보기로 했습니다. (이유는 그냥?~~~~)



import 


go 에서는 import는 (https://golang.org/pkg/ ) 두가지 형식으로 할수 있습니다.


첫번째

import "fmt"

import "time"

import "math/rand"


두번째

import (

"fmt"

"time"

"math/rank"

)

처럼 가능 합니다.



Function 


함수는 func() 으로 만들 수 있습니다. 


package main


import "fmt"


func add(x int, y int) int {

    return x + y

}


func main() {

    fmt.Println(add(42, 13))

}


다른 언어와 다른 점은 (데이터 타입 , 변수명) 이 아닌 (변수명 , 데이터 타입 ) 순으로 적고

마지막에 있는 int 는 함수의 리턴 데이터 타입을 정의 합니다.


https://tour.golang.org/#7  데모 가능


func add(x, y int) int {

    return x + y

}

처럼 (x int , y int) 가 아닌 (x, y int)로 축약도 됩니다.


https://tour.golang.org/#9 (데모 페이지)

package main

import "fmt"


func swap(x, y string) ( string, string ) {

    return y, x

}


func main() {

    a, b := swap("hello", "world")

    fmt.Println(a, b)

}

2개 이상의 리턴값을 리턴해 줄수 도 있습니다.

각각의 리턴 값을 정의 해 주면 되네요


https://tour.golang.org/#11 (데모 페이지)

package main


import "fmt"


func split(sum int) (x, y int) {

    x = sum * 4 / 9

    y = sum - x

    return

}


func main() {

    fmt.Println(split(17))

}


리턴값에 변수명을 쓰기 싫다면 위의 예제 같이 해도 되네요~~~





느끼점은 C , Java , Python을 믹스한 듯한 언어입니다.

최종골은 Restful 서버를 만들기 까지 해 봐야 겠습니다.