![](/zbxe/layouts/mr_layouts_1st/images/default/blank.gif)
강좌 & 팁
구글에서 만든 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 서버를 만들기 까지 해 봐야 겠습니다.