一. 認識Go語言
go 語言(Golang)是 Google 在 2007 年開發的一種開源編程語言,於 2009 年 11 月開源,2012 年發佈 go 穩定版。go是一門非常年輕的語言,它的主要目標是“兼具Python等動態語言的開發速度和C/C++等編譯型語言的性能與安全性”。
二. Go的優勢
- 做高併發有巨大的優勢;
- 開發簡單,開發效率堪比python;
- 運行效率高,很適合作中央服務器的系統編程語言;
- 是項目轉型的首選語言,很多公司在用go重構代碼;
- 提供了海量並行的支持,很適合處理遊戲相關數據。
三. Go適合作什麼
Go 語言被設計成一門應用於搭載 Web 服務器,存儲集羣或類似用途的巨型中央服務器的系統編程語言。對於高性能分佈式系統領域而言,Go 語言無疑比大多數其它語言有着更高的開發效率。它提供了海量並行的支持,這對於遊戲服務端的開發而言是再好不過了。
四. Hello World By Go
第一個 Go 程序 hello.go:
package main
import "fmt"
func main() {
/* 我的第一個Go程序 */
fmt.Println("Hello World!")
}
上述 Go 代碼的組成部分分析:
-
package main 定義包名。Go 語言規定必須在源文件中非註釋的第一行指明這個文件屬於哪個包,如:package main。package main表示一個可獨立執行的程序,每個 Go 應用程序都包含一個名爲 main 的包。
-
import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包(的函數,或其他元素),fmt 包實現了格式化 IO(輸入/輸出)的函數。
-
func main() 是程序開始執行的函數。main 函數是每一個可執行程序所必須包含的,一般來說都是在啓動後第一個執行的函數(如果有 init() 函數則會先執行該函數)。
-
/*...*/ 是註釋,在程序執行時將被忽略。單行註釋是最常見的註釋形式,你可以在任何地方使用以 // 開頭的單行註釋。多行註釋均已以 /* 開頭,並以 */ 結尾,且不可以嵌套使用,多行註釋一般用於包的文檔描述或註釋成塊的代碼片段。
-
fmt.Println(...) 可以將字符串輸出到控制檯,並在最後自動增加換行字符 \n,等價於 fmt.Print("hello, world\n") 。
-
當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,那麼使用這種形式的標識符的對象就可以被外部包的代碼所使用,這被稱爲導出;標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的;這被稱爲 Go 語言的可見性規則。
要執行 Go 語言代碼可以使用 go run 命令:
還可以使用 go build 命令來生成二進制文件:
五. Go語言基礎語法
5.1 行分隔符
在 Go 程序中,一行代表一個語句結束。將多個語句寫在同一行,則必須使用 ; 人爲區分,但在實際開發中我們並不鼓勵這種做法:
a := "123";b := "456"
fmt.Println(a + b)
5.2 標識符
標識符用來命名變量、類型等程序實體。一個標識符實際上就是一個或是多個數字、字母、下劃線組成的序列,其中數字不能作爲開頭。
5.3 關鍵字
Go 代碼中會使用到的 25 個關鍵字或保留字,這些關鍵字不允許作爲自定義標識符使用:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
此外,Go 語言還有 36 個預定義標識符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
5.4 Go語言的空格
Go 語言中變量的聲明必須使用空格隔開,如:
package main
import "fmt"
func main() {
var age int8
// 語句中適當使用空格能讓程序更易閱讀。
age = 22
fmt.Println("My age is " + string(age))
}
備註:GoLand IDEA中使用快捷鍵“Ctrl + alt + L”可以格式化代碼,自動添加空格。