一篇文章帶你了解Go語(yǔ)言基礎(chǔ)之變量
前言
Hey,大家好呀,我是星期八,這次咱們繼續(xù)學(xué)習(xí)Go基礎(chǔ)之變量叭。
為什么需要變量
簡(jiǎn)單點(diǎn)說(shuō),我們寫的程序默認(rèn)數(shù)據(jù)都是保存在內(nèi)存條中的,我們不可能直接通過(guò)地址找到這個(gè)變量,因?yàn)榈刂诽L(zhǎng)了,而且不容易記。
通常我們是通過(guò)變量名找到對(duì)應(yīng)的地址上面的值,再進(jìn)行一系列操作。
變量類型
現(xiàn)在不管是什么語(yǔ)言,常用的變量分為以下類型。
- 整數(shù),1,6,2,8,4...
- 浮點(diǎn)數(shù),1.1,5.7767,23.99...
- 布爾型,真,假
- 字符串類型,"張三","李四"...
- List
- Map
大概會(huì)分為以上幾種類型,不過(guò)這個(gè)不用記,了解就好。
變量定義
聲明變量
格式如下。
- var 變量名 變量類型
- 例如:
- var age int
- var gender bool
批量聲明
上面聲明變量是一個(gè)一個(gè)聲明的,如果需要一次性聲明一些變量,可以這樣寫。
- var (
- age int
- gender bool
- name string
- id int
- height int
- ...
- )
聲明時(shí)賦值
上述方式,只是聲明了變量,但是并沒(méi)有賦值,在后期需要時(shí)可以在賦值。
如果在聲明時(shí),就確定值是什么,可以直接賦值。
格式如下。
- var 變量名 類型 = 值
- 例如:
- var age int = 18
- var name string = "張三"
在Go中的一個(gè)強(qiáng)制要求
在Go中,變量必須使用,至少需要fmt.Println(變量)。
類型推導(dǎo)方式聲明變量賦值
在上述聲明變量并且賦值時(shí),還需要指定變量類型。
在Go,Go具有類型推導(dǎo)方式聲明時(shí)賦值變量。
- var age = 18
- var name = "張三"
其實(shí)就是變量名后面不用寫變量類型了。
:=方式變量賦值
在Go,還有一種更簡(jiǎn)單的方式聲明變量賦值。
格式如下。
- age := 18
- name := "張三"
學(xué)過(guò)Python的可能有點(diǎn)開(kāi)心了,除了多個(gè)一個(gè):號(hào),其他基本和Pyton定義變量方式一樣。
注意:
- age := 18 //本質(zhì)是執(zhí)行的兩句話
- //同上
- var age int
- age = 18
全局變量
簡(jiǎn)單說(shuō)就是,在最外面的定義的變量就是全局變量。
在Go中,全局變量是有要求的。
- package main
- //全局變量:
- // 方式一,聲明全局變量,必須跟類型
- //var age int
- //方式二,聲明變量且賦值,類型可以不用寫
- //var age = 18
- //var age int = 18
- //方式三,錯(cuò)誤示例,全局變量要么只聲明變量,要么聲明就賦值
- //var age int
- //age =18
- //方式四,錯(cuò)誤示例,:=方式聲明賦值
- // 方式四其實(shí)就等于方式三的寫法,所以不能用在全局變量中
- //age := 18
- func main() {
- }
PS:全局變量要么只聲明,要么聲明時(shí)就賦值,不能寫兩行賦值,所以:=方式不能應(yīng)用在全局變量中
匿名變量
匿名變量多用于函數(shù)返回值場(chǎng)景中,比如函數(shù)返回了倆值,倆值要第一個(gè)值,就可以使用匿名變量。
因?yàn)镚o中,變量必須使用,如果某個(gè)變量需要忽略,使用_即可。
值得注意的是,匿名變量不會(huì)占用內(nèi)存。
- package main
- func 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 main
- import "fmt"
- func main() {
- //單個(gè)聲明
- const PI1 int = 3
- const PI2 = 3.14
- //同時(shí)聲明多個(gè)
- const (
- PI3 = 3.14
- PI4 = 3.14
- )
- //同上聲明多個(gè)變量時(shí),如果省略了值表示和上一行相同
- const (
- girl1 = 18
- girl2 // 18,和上一行相同
- girl3 // 18,和上一行相同
- girl4 = 17
- girl5 // 17,和上一行相同
- )
- fmt.Println(girl3, girl5)
- }
注:常量聲明時(shí)就必須賦值
錯(cuò)誤示例。
- package main
- func main() {
- const age int
- age = 18
- //error
- }
總結(jié)
上述我們學(xué)習(xí)了Go基礎(chǔ)之變量。
如果在操作過(guò)程中有任務(wù)問(wèn)題,記得下面留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。
本文轉(zhuǎn)載自微信公眾號(hào)「Go語(yǔ)言進(jìn)階學(xué)習(xí)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Go語(yǔ)言進(jìn)階學(xué)習(xí)公眾號(hào)。