A Tour of Go: Basics 1
Packages, variables and functions
Packages
packages中,以大寫字母開頭的name是exported name,當import package時,只有exported name可以被從外部訪問。
Functions
同type的連續引數可以只在最後指明type。
函式可以有多個返回值。
func swap(x, y string) (string, string) { return y, x }
Go支援有name的返回值:
- 函式定義時就定義好返回變數名,在函式內操作返回變數。
- 用naked return語句返回。
func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x return }
注意點:文中建議只在短函式中這樣使用,因為長了容易影響可讀性。
Variables
var關鍵字定義變數。
有初始值時可以省略type。
技巧及注意點:
- 在函式內,可以使用:=符號替換有初始值的變數定義。
- 但是在函式外,所有語句必須以關鍵字開始,所以不能使用:=符號。
Basic types
bool string intint8int16int32int64 uint uint8 uint16 uint32 uint64 uintptr byte // alias for uint8 rune // alias for int32 // represents a Unicode code point float32 float64 complex64 complex128
技巧:
- var和import都可以用小括號宣告多個包或變數。
- 文中建議,如無特殊需求,使用int就好,不必指明size或sign。
變數定義時,如不指定初始值,則分配對應type的預設值。
- numeric type: 0
- bool: false
- string: ""
表示式T(v)表示將值v轉換成T型別:
var i = 10 var f = float64(i)
注意點:與C語言不同,Go必須顯式轉換。
常量定義將var換成const關鍵字即可,不過不能使用:=符號。
疑問
- Numeric constants are high-precision values.