A Tour of Go: Basics 1
阿新 • • 發佈:2018-10-07
unicode x64 連續 變量名 and export int asi constant 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 int int8 int16 int32 int64 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.
A Tour of Go: Basics 1