標籤:nic 關鍵字 沒有 初始化 教程 pytho 多個 結構 func
主要內容來自中文版的同名教程Go語言之旅
其目的為總結要點
包,函數和變數包
import 文法,多個用括弧換行擴起,包之間不需要間隔符,用引號引起
import ( "fmt" "math/rand")// 官方認為分組匯入比多個匯入更好// 用`.`引用包內對象,僅有首字母大寫的那些對象是可匯出的
函數
函式宣告
func add(x int, y int) int { //類型在變數名之後 return x + y}func add(x, y int, s string) int { // 其實輸入變數就像是沒有var的變數聲明一樣 fmt.Println(s) return x + y}func swap(x, y string) (string, string) { // 函數的傳回值只用宣告類型,也可以返回多個值,但是要記住用括弧括起來 return y, x}func split(sum int) (x, y int) { // 傳回值也可以提前聲明好,這樣就可以直接用了,官方建議這種用法還是用在短函數裡面 x = sum * 4 / 9 y = sum - x return}
變數
var c, python, java bool // var 可以用在包或者函數層級的聲明中var i, j int = 1, 2 // 變數可以初始化var c, python, java = true, false, "no!" // 初始化值存在時,可以省略類型c, python, java := true, false, "no!" // 和上一個等效var ( c, python bool java string) // 這種操作也是存在的
我們說var =
和 :=
是等價的。但是函數外(包之外)的每一個語句都必須以關鍵字開頭,因此:=
這種結構不能用在函數之外。
boolstringint int8 int16 int32 int64uint uint8 uint16 uint32 uint64 uintptrbyte // uint8 的別名rune // int32 的別名 // 表示一個 Unicode 碼點float32 float64complex64 complex128 // go 支援複數運算
go 的變數需要顯示類型轉換
var i int = 42var f float64 = float64(i)var u uint = uint(f)// 如果在函數內i := 42f := float64(i)u := uint(f)
常量聲明
const World = "世界"
不能用:=
,數值常量是高精度的值,有意思的是,他可以被解釋成int
和float
Go 入門 - 包,函數和變數