go語言的變量定義示例詳解
前言
特別說明: 本文只適合新手學習
這篇文章帶我們?nèi)腴Tgo語言的定義變量的方式,其實和javascript很相似,所以特意總結(jié)在此。
在go語言中,也有變量和常量兩種,首先我們來看變量的定義,定義變量我們分為定義單個變量和多個變量。
本文知識點總結(jié)如下圖所示:
定義單個變量
在定義單個變量中,我們通過var關(guān)鍵字來定義一個變量,其后跟變量名和變量類型,其中變量類型可以省略,語法結(jié)構(gòu)如下:
var <變量名> <變量類型>
例如:
var name string
以上代碼表示定義一個變量名為name,變量類型為字符串的變量,注意go語言定義變量的類型始終是在最后。
可以看到,和js定義變量區(qū)別不大,只不過是多了一個類型聲明,其中這個類型聲明還可以省略。
定義多個變量
在go語言中,我們通過,
操作符來定義多個變量,這里定義多個變量也分為兩種情況,一種是多個變量都是同一類型,另外一種則是不同類型的多個變量,我們先來看第一種。
定義相同類型的多個變量
和定義單個變量一樣,也是使用var關(guān)鍵字來定義,并且通過,
來分隔,語法結(jié)構(gòu)如下:
var <變量名1>,<變量名2>,<變量名3>,... <變量類型>
如:
var name1,name2,name3 string
以上定義了name1,name2,name3 3個變量,變量的類型都是string。
可以看到以上是定義相同類型的多個變量,那么我們應(yīng)該如何定義不同類型的多個變量呢?
很簡單,用()
包裹起來,然后也是使用,
分隔,在每個變量名后面緊跟變量類型即可,語法如下:
var (<變量名1> <變量1類型>,<變量名2> <變量2類型>...)
例如以下代碼:
var (name string,age int)
是不是很簡單?
變量的初始化
在go語言中,定義了變量,同樣也會有初始化的操作,也就是說給變量初始化值,也是通過=
操作符后跟值即可。語法結(jié)構(gòu)如下:
var <變量名> <變量類型>? = <變量值>
例如:
var name string = "eveningwater"
變量類型的省略
其實我們在初始化變量的時候可以省略變量類型,然后go編譯器會在編譯的時候幫我們自動推導變量類型,這簡直就是在寫javascript啊,這也是我在以上語法變量類型那一塊中標注?的原因,就表示可以寫可以不寫。例如以上示例代碼就可以寫成:
var name = "eveningwater"
如此看來,我們定義多個變量同樣也可以省略變量類型,如:
var (name,age) = "eveningwater",26
又或者是:
var name1,name2 = "eveningwater","xxx"
var關(guān)鍵字的省略(簡短聲明)
go語言的定義變量名的關(guān)鍵字var也可以省略,這也是我沒有想到的,如下所示:
name1,name2 := "eveningwater","xxx"
感覺挺神奇的,是吧!go把這種省略了var和type的聲明叫做簡短申明
。這樣一來我們就可以在定義變量的時候用這個":="來定義變量了,不,你想多了,使用這種方式來定義變量是有限制的,那就是這種方式只能夠作用在函數(shù)內(nèi)部,如果我們要定義全局變量的話,還是要老老實實的寫var關(guān)鍵字。
全局變量與局部變量
通過以上的說明,我們知道了定義全局變量和定義局部變量的方式,如下:
var a string = "hello" //全局變量 func test() { b := " world" //局部變量 c := a + b fmt.Printf("%s \n", c) }
特別的變量名
go語言有個很特殊的變量名,那就是下劃線"_",為什么說它特殊呢,因為定義它的值都會被丟棄,沒錯,就是丟棄,例如:
_,num = 35,34
其中_變量值為35將會被丟棄,最后就只剩下值為34的num變量了,感覺這種設(shè)計也是挺有意思的。
未使用變量的限制
go語言在編譯階段會對聲明但未使用變量報錯,比如以下代碼就會報錯: 聲明了i變量但并未使用。
package main func main(){ //編譯階段報錯 var i int }
常量
常量其實也就是在程序編譯階段定下來的值嗎,無法被修改,在go語言中常量也可以被定義成數(shù)值,布爾值或者是字符串等類型。它的語法結(jié)構(gòu)如下:
const variableName = value;
例如:
const num int = 10;
其中常量的類型如果需要也可以加上。
以上就是本文內(nèi)容了,感謝大家觀看,看完本文,想來應(yīng)該要不了幾分鐘,幾分鐘就掌握了go語言定義變量的概念和方式,想來還是值得的,非常適合新手學習
以上就是go語言的變量定義示例詳解的詳細內(nèi)容,更多關(guān)于go語言變量定義的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go語言通過chan進行數(shù)據(jù)傳遞的方法詳解
這篇文章主要為大家詳細介紹了Go語言如何通過chan進行數(shù)據(jù)傳遞的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2023-06-06go實現(xiàn)服務(wù)優(yōu)雅關(guān)閉的示例
本文主要介紹了go實現(xiàn)服務(wù)優(yōu)雅關(guān)閉的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02