1. 程式人生 > >A Tour of Go: Basics 1

A Tour of Go: Basics 1

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關鍵字即可,不過不能使用:=符號。

疑問

  1. Numeric constants are high-precision values.

A Tour of Go: Basics 1