Hello World
// 每個go程序,都必須有一個package main
// 每個go程序,都是.go結尾的
// 一個package(包名)相當於命名空間
package main
// 這是導入一個標准包fmt(format),一般用於格式化輸出
import "fmt"
// 這是主函數(所有的函數必須使用func開頭)
// 一個函數的返回值,不會放在func前,而是放在參數后面
// 函數左花括號,必須與函數同行,不能寫到下一行
func main(){
// go語言語句不需要使用分號(;)結尾
fmt.Println("hello world")
}
Golang特點
- 沒有頭文件概念.go走天下
- 強類型語言,編譯性語言(python弱類型語言,解釋性語言)
- 一個go語言的應用程序,在運行的時候是不需要依賴外部庫的
- 把執行時所需要的所有庫都打包到程序中
- go程序比較大
- 如果import的包在程序中沒有使用,那么程序不允許編譯
- Go語言是不區分平台的,在Windows下編譯一個程序,也可以在Linux下運行,需要兩個環境變量來控制
- GOOS:設定運行的平台
- mac:GOOS=darwin
- linux:GOOS=linux
- windows:GOOS=windows
- GOARCH:目標平台的體系架構
- 386:GOARCH=386
- amd64:GOARCH=amd64
- arm:GOPATH=arm
- GOOS:設定運行的平台
為什么在Golang中引用了指定的依賴庫沒有使用,編譯會報錯?
因為Golang編譯時會將所有的庫都打包到程序中,導致應用程序比較大,所以如果你一旦引用了指定的包,卻沒有使用,Golang為了節省不必要的資源是不允許編譯通過的。
Windows下編譯Go程序,在Linux下運行
輸入如下代碼並保存01_helloworld.go
package main
import "fmt"
func main(){
fmt.Println("hello world")
}
進入源碼目錄,修改GOOS為linux,並編譯
set GOOS=linux
# 注意,在哪個bash里面設置了GOOS=linux就在哪個Bash里面執行go build
go build -o hello-linux 01_helloworld.go
將編譯好的程序復制到linux服務器中
scp hello-linux root@linuxhost:/tmp/go
進入Linux服務器,查看/tmp/go
目錄下是否存在剛剛復制過來的執行文件
運行程序
至此,我們已經成功的在Windows下編譯Go程序,Linux上運行Go程序了。