標籤:art import turn 括弧 export precision star 替換 value
Packages, variables and functionsPackages
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
boolstringint int8 int16 int32 int64uint uint8 uint16 uint32 uint64 uintptrbyte // alias for uint8rune // alias for int32 // represents a Unicode code pointfloat32 float64complex64 complex128
技巧:
- var和import都可以用小括弧聲明多個包或變數。
- 文中建議,如無特殊需求,使用int就好,不必指明size或sign。
變數定義時,如不指定初始值,則分配對應type的預設值。
- numeric type: 0
- bool: false
- string: ""
運算式T(v)表示將值v轉換成T類型:
var i = 10var f = float64(i)
注意點:與C語言不同,Go必須顯式轉換。
常量定義將var換成const關鍵字即可,不過不能使用:=符號。
疑問
- Numeric constants are high-precision values.
A Tour of Go: Basics 1