GO_VERSION=1.17.1
curl -LO https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
cat ~/.profile | grep /usr/local/go/bin || echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
cat ~/.profile | grep GOPATH= || echo 'export GOPATH=$(go env GOPATH)' >> ~/.profile
cat ~/.profile | grep GOPATH/bin || echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.profile
source ~/.profile
echo $GOPATH
go version
package main
import "fmt"
func main() {
fmt.Println("Hello world")
fmt.print("Hello world")
}
출력을 위해서 fmt라는 module을 import해서 print를 수행
Tip) vscode에서 실행을 할 경우 go extension을 같이 사용하는 것이 좋다.
다음과 같이 파일을 만들어서 저장을 하고
go run ~~.go
를 실행하게 되면
다음과 같이 command 창에 출력이 잘 실행 됨
go build lesson.go
를 실행하면
다음과 같이 동일 폴더에 exe파일이 생성됩니다.
이를 ./~~.exe
를 하게 되면 마찬가지로 파일이 실행되게 됩니다.
Tip) 이는 c언어와 마찬가지로 compile후에 실행이 되는 것이 특징이다.
컴파일러, 인터프리터에 대해서는 중요하므로 알아보면 좋다!
annotation은 코드 실행에 영향을 주지 않고,
코드를 리뷰할 때 서로 간에 혹은 스스로 내용을 기록 전달하기 위해 있는 코드
go lang의 annotation은 다음과 같이 사용하면 된다
// 주석으로 사용할 문장
변수 선언은 다음과 같이 수행이 됩니다.
var ~~ =
var ~~ 자료형 =
~~ :=
혹은 따로 자료형을 입력하지 않아도 동적할당(자동으로 자료형 설정)도 가능하다.
example)
package main
import "fmt"
func main() {
var a = "Sungmin"
fmt.Println(a)
var b string = "Kim"
fmt.Println(b)
c := "engineer"
fmt.Println(c)
}
package main
import (
"fmt"
)
func main() {
var i int = 100
var u uint = uint(i)
var f float32 = float32(i)
fmt.Println(f, u)
}
다음과 같이 A(a)의 형태로 자료형을 변환할 수도 있다.