1 變量三種聲明: (第一種的var和類型都是多余;
第二種最簡潔,但是第二種只能用在函數中,不能是全局變量的聲明)
? ? ? ?第一種:
var v_name v_type(注意順序)v_name = value
package mainimport "fmt"func main() {var vname1, vname2, vname3 intvname1, vname2, vname3 = 1, 2, 3fmt.Println(vname1)fmt.Println(vname2)fmt.Println(vname3) }
第二種:(初始化聲明)
? ? ? ? ?如果在相同的代碼塊中,我們不可以再次對于相同名稱的變量使用初始化聲明
var v_name = value(自行推導類型)
package mainimport "fmt"func main() {var v1, v2, v3 = 7, 8, 9fmt.Println(v1)fmt.Println(v2)fmt.Println(v3) }
第三種:
v_name := value(:=左側的變量必須是沒有聲明過的)
2 值類型和引用類型
? ? ? ? ?所有像 int、float、bool 和 string 這些基本類型都屬于值類型,使用這些類型的變量直接指向存在內存中的值;當使用等號?=
?將一個變量的值賦值給另一個變量時,如:j = i
,實際上是在內存中將 i 的值進行了拷貝
?&i 來獲取變量 i 的內存地址,例如:0xf840000040(每次的地址都可能不一樣)。值類型的變量的值存儲在棧中。
? ? ? ?
。
?