一篇文章帶你了解Go語言基礎(chǔ)之變量
回復(fù)“Go語言”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
前言
Hey,大家好呀,我是星期八,這次咱們繼續(xù)學(xué)習(xí)Go基礎(chǔ)之變量叭。
為什么需要變量
簡(jiǎn)單點(diǎn)說,我們寫的程序默認(rèn)數(shù)據(jù)都是保存在內(nèi)存條中的,我們不可能直接通過地址找到這個(gè)變量,因?yàn)榈刂诽L(zhǎng)了,而且不容易記。
通常我們是通過變量名找到對(duì)應(yīng)的地址上面的值,再進(jìn)行一系列操作。

變量類型
現(xiàn)在不管是什么語言,常用的變量分為以下類型。
整數(shù),
1,6,2,8,4...浮點(diǎn)數(shù),
1.1,5.7767,23.99...布爾型,
真,假字符串類型,
"張三","李四"...List
Map
大概會(huì)分為以上幾種類型,不過這個(gè)不用記,了解就好。
變量定義
聲明變量
格式如下。
var 變量名 變量類型例如:var age intvar gender bool
批量聲明
上面聲明變量是一個(gè)一個(gè)聲明的,如果需要一次性聲明一些變量,可以這樣寫。
var (age intgender boolname stringid intheight int...)
聲明時(shí)賦值
上述方式,只是聲明了變量,但是并沒有賦值,在后期需要時(shí)可以在賦值。
如果在聲明時(shí),就確定值是什么,可以直接賦值。
格式如下。
var 變量名 類型 = 值例如:var age int = 18var name string = "張三"
在Go中的一個(gè)強(qiáng)制要求
在Go中,變量必須使用,至少需要fmt.Println(變量)。

類型推導(dǎo)方式聲明變量賦值
在上述聲明變量并且賦值時(shí),還需要指定變量類型。
在Go,Go具有類型推導(dǎo)方式聲明時(shí)賦值變量。
var age = 18var name = "張三"
其實(shí)就是變量名后面不用寫變量類型了。
:=方式變量賦值
在Go,還有一種更簡(jiǎn)單的方式聲明變量賦值。
格式如下。
age := 18name := "張三"
學(xué)過Python的可能有點(diǎn)開心了,除了多個(gè)一個(gè):號(hào),其他基本和Pyton定義變量方式一樣。
注意:
age := 18 //本質(zhì)是執(zhí)行的兩句話//同上var age intage = 18
全局變量
簡(jiǎn)單說就是,在最外面的定義的變量就是全局變量。
在Go中,全局變量是有要求的。
package main//全局變量:// 方式一,聲明全局變量,必須跟類型//var age int//方式二,聲明變量且賦值,類型可以不用寫//var age = 18//var age int = 18//方式三,錯(cuò)誤示例,全局變量要么只聲明變量,要么聲明就賦值//var age int//age =18//方式四,錯(cuò)誤示例,:=方式聲明賦值// 方式四其實(shí)就等于方式三的寫法,所以不能用在全局變量中//age := 18func main() {}
PS:全局變量要么只聲明,要么聲明時(shí)就賦值,不能寫兩行賦值,所以:=方式不能應(yīng)用在全局變量中
匿名變量
匿名變量多用于函數(shù)返回值場(chǎng)景中,比如函數(shù)返回了倆值,倆值要第一個(gè)值,就可以使用匿名變量。
因?yàn)镚o中,變量必須使用,如果某個(gè)變量需要忽略,使用_即可。
值得注意的是,匿名變量不會(huì)占用內(nèi)存。
package mainfunc get_info() (string, int) {return "張三", 18}func main() {//標(biāo)準(zhǔn)寫法//name, age := get_info()//fmt.Println(name, age)//匿名變量方式//name, _ := get_info()//fmt.Println(name)//_,age := get_info()//fmt.Println(age)}
常量
其實(shí)常量和變量基本一樣,但是常量是不能修改的。
通常常量以大寫定義。
package mainimport "fmt"func main() {//單個(gè)聲明const PI1 int = 3const PI2 = 3.14//同時(shí)聲明多個(gè)const (PI3 = 3.14PI4 = 3.14)//同上聲明多個(gè)變量時(shí),如果省略了值表示和上一行相同const (girl1 = 18girl2 // 18,和上一行相同girl3 // 18,和上一行相同girl4 = 17girl5 // 17,和上一行相同)fmt.Println(girl3, girl5)}
注:常量聲明時(shí)就必須賦值
錯(cuò)誤示例。
package mainfunc main() {const age intage = 18//error}
總結(jié)
上述我們學(xué)習(xí)了Go基礎(chǔ)之變量。
如果在操作過程中有任務(wù)問題,記得下面留言,我們看到會(huì)第一時(shí)間解決問題。
我是碼農(nóng)星期八,如果覺得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈。感謝你的觀看。
------------------- End -------------------

歡迎大家點(diǎn)贊,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
