Go語言基礎語法----變量

Go語言基礎語法----變量

1變量

1.1什麼是變量

變量是爲存儲特定類型的值而提供給內存位置的名稱。在go中聲明變量有多種語法。

變量的本質就是一小塊內存,用於存儲數據,在程序運行過程中數值可以改變

1.2聲明變量

變量名稱:以字母或下劃線開頭,由一個或多個字母、數字、下劃線組成

指定變量類型,聲明後若不賦值,使用默認值

var name string
name = "baby"

根據值自行判定變量類型(類型推斷Type inference)

一個變量有一個初始值,Go將自動能夠使用初始值來推斷該變量的類型。因此,如果變量具有初始值,則可以省略變量聲明中的類型。

var age = 18
  • 省略var, 注意 :=左側的變量不應該是已經聲明過的(多個變量同時聲明時,至少保證一個是新變量),否則會導致編譯錯誤(簡短聲明)
  • 這種方式它只能被用在函數體內,而不可以用於全局變量的聲明與賦值
phoneNumber := 888888888

示例:

package main

import "fmt"

func main()  {
	//指定變量類型,聲明後若不賦值,使用默認值
	var name string
	fmt.Println(name)
	name = "baby"
	fmt.Println(name)

	//根據值自行判定變量類型(類型推斷Type inference)
	var age = 18
	fmt.Println(age)

	//省略var, 注意 :=左側的變量不應該是已經聲明過的(多個變量同時聲明時,至少保證一個是新變量),否則會導致編譯錯誤(簡短聲明)
	phoneNumber := 888888888
	fmt.Println(phoneNumber)
}

運行結果:

baby
18
888888888

1.3 多變量聲明

第一種,以逗號分隔,聲明與賦值分開,若不賦值,存在默認值
var name1, name2, name3 type
name1, name2, name3 = v1, v2, v3
第二種,直接賦值,下面的變量類型可以是不同的類型
var name1, name2, name3 = v1, v2, v3
第三種,集合類型
var (
    name1 type1
    name2 type2
)

1.4 注意事項

  • 變量必須先定義才能使用
  • go語言是靜態語言,要求變量的類型和賦值的類型必須一致。
  • 變量名不能衝突。(同一個作用於域內不能衝突)
  • 簡短定義方式,左邊的變量名至少有一個是新的
  • 簡短定義方式,不能定義全局變量。
  • 變量的零值。也叫默認值。
  • 變量定義了就要使用,否則無法通過編譯。

在同一個作用域中,已存在同名的變量,則之後的聲明初始化,則退化爲賦值操作。但這個前提是,最少要有一個新的變量被定義,且在同一作用域,例:

package main

import (
	"fmt"
)

func main()  {
	var name string
	name = "haha"
	//&符號的意思是對變量取地址
	fmt.Println(&name, name)
	name, age := "xixi", 18
	fmt.Println(&name, name)
	fmt.Println(&age, age)
}

運行結果:

0x11088108 haha
0x11088108 xixi
0x1109e068 18
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章