淺析Golang中變量與常量的聲明與使用
變量
變量的類型
變量的作用是用來存儲數(shù)據(jù),不同的變量保存的數(shù)據(jù)類型有可能是不一樣的,一般常見的數(shù)據(jù)類型有:整型、浮點型、布爾型等。
go作為一個強類型語言,go中的每一個變量都有自己的類型,并且變量必須經(jīng)過聲明才能開始使用。
聲明變量
go中的變量需要聲明后才能使用,并且在同一個作用域中不支持重復(fù)聲明。并且go語言的變量聲明后必須使用。
變量聲明的方式
標準聲明
一般聲明變量的格式為
// var 變量名 變量類型 var name string var age int var isShow bool
批量聲明
當在聲明變量的時候每次都需要寫var關(guān)鍵字會顯得比較繁瑣,在go中還支持批量的聲明變量
var (
name string
age int
isShow bool
num float32
)
變量的初始化
go中在聲明變量的時候,會自動對變量對應(yīng)的內(nèi)存區(qū)域進行初始化操作,每個變量都會被初始化成其類型的默認值,比如:整型和浮點型變量的默認值為0.字符串變量的默認值為空字符串。布爾值變量的默認值為false。切片、函數(shù)、指針變量的默認為nil
但是在聲明變量的時候為其指定初始值。變量初始化的標準格式為
// var 變量名 類型 = 值 var name string = "water" var age int = 18 // 也可以一次定義多個變量 var name,age = "water", 20
變量類型推導(dǎo)
很多時候可以將變量的類型省略,編輯器可以根據(jù)等號右邊的值來推導(dǎo)出變量的類型
var name = "water" var age = 18
短變量聲明
在函數(shù)內(nèi)部,可以使用:=的聲明方式初始化變量
package main
import (
"fmt"
)
// 全局變量
var name = "water"
func main() {
a := 1
b := 2
fmt.Println(a,b)
}
匿名變量
在使用多重賦值時,如果想忽略一個值,可以使用匿名變量,匿名變量一般用一個下劃線_表示,如下
func getValue()(int,string){
return 18,"water"
}
func main() {
a,_ := getValue()
_,b := getValue()
fmt.Println("a=",a)
fmt.Println("b=",b)
}匿名變量不占用命名空間,不會分配內(nèi)存,所以匿名變量之間不存在重復(fù)聲明,變量聲明需要注意以下問題:
- 函數(shù)外的每個語句都必須以關(guān)鍵字開始比如:var、const、func
:=不能在函數(shù)外使用_多用于占位,表示忽略值
常量
相比較于變量而言,常量是恒定不變的值,定義一些不會改變的值。常量的聲明和變量聲明非常相似,只是把var換成了const,常量在定義的時候必須賦值
const a = 123 const b = 456
常量一旦聲明就不會再發(fā)生變化了。而且多個常量也可以一起聲明
const (
a = 123
b = 456
)
如果同時聲明多個常量時,省略了值則表示和上面一行的值相同。
const (
a = 1
b
c
)
這樣a、b、c的值都是100
iota
iota是go語言的常量計數(shù)器,只能在常量的表達式中使用。iota在const關(guān)鍵字中第一次出現(xiàn)時為0,然后const中每新增一行常量聲明就將加一計數(shù)一次。
const (
a = iota // 0
b // 1
c // 2
d // 3
)
常見的使用iota的技巧
使用_跳過一些值
const (
a = iota //0
b // 1
_
d // 3
)
在iota中間插入其他值
const (
a = iota // 0
b = 20
c // 2
d // 3
)
const e = iota // 0
多個iota定義一行
const (
a,b = iota + 1,iota + 2 // 1,2
c,d // 2,3
e,f // 3,4
)到此這篇關(guān)于淺析Golang中變量與常量的聲明與使用的文章就介紹到這了,更多相關(guān)Golang變量 常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go?Wails開發(fā)桌面應(yīng)用使用示例探索
這篇文章主要為大家介紹了Go?Wails的使用示例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
golang基礎(chǔ)之waitgroup用法以及使用要點
WaitGroup是Golang并發(fā)的兩種方式之一,一個是Channel,另一個是WaitGroup,下面這篇文章主要給大家介紹了關(guān)于golang基礎(chǔ)之waitgroup用法以及使用要點的相關(guān)資料,需要的朋友可以參考下2023-01-01
Golang網(wǎng)絡(luò)模型netpoll源碼解析(具體流程)
本文介紹了Golang的網(wǎng)絡(luò)模型netpoll的實現(xiàn)原理,本文將從為什么需要使用netpoll模型,以及netpoll的具體流程實現(xiàn)兩個主要角度來展開學(xué)習(xí),感興趣的朋友跟隨小編一起看看吧2024-11-11

