<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
特別說明: 本文只適合新手學習
這篇文章帶我們入門go語言的定義變數的方式,其實和javascript很相似,所以特意總結在此。
在go語言中,也有變數和常數兩種,首先我們來看變數的定義,定義變數我們分為定義單個變數和多個變數。
本文知識點總結如下圖所示:
在定義單個變數中,我們通過var關鍵字來定義一個變數,其後跟變數名和變數型別,其中變數型別可以省略,語法結構如下:
var <變數名> <變數型別>
例如:
var name string
以上程式碼錶示定義一個變數名為name,變數型別為字串的變數,注意go語言定義變數的型別始終是在最後。
可以看到,和js定義變數區別不大,只不過是多了一個型別宣告,其中這個型別宣告還可以省略。
在go語言中,我們通過,
操作符來定義多個變數,這裡定義多個變數也分為兩種情況,一種是多個變數都是同一型別,另外一種則是不同型別的多個變數,我們先來看第一種。
和定義單個變數一樣,也是使用var關鍵字來定義,並且通過,
來分隔,語法結構如下:
var <變數名1>,<變數名2>,<變數名3>,... <變數型別>
如:
var name1,name2,name3 string
以上定義了name1,name2,name3 3個變數,變數的型別都是string。
可以看到以上是定義相同型別的多個變數,那麼我們應該如何定義不同型別的多個變數呢?
很簡單,用()
包裹起來,然後也是使用,
分隔,在每個變數名後面緊跟變數型別即可,語法如下:
var (<變數名1> <變數1型別>,<變數名2> <變數2型別>...)
例如以下程式碼:
var (name string,age int)
是不是很簡單?
在go語言中,定義了變數,同樣也會有初始化的操作,也就是說給變數初始化值,也是通過=
操作符後跟值即可。語法結構如下:
var <變數名> <變數型別>? = <變數值>
例如:
var name string = "eveningwater"
其實我們在初始化變數的時候可以省略變數型別,然後go編譯器會在編譯的時候幫我們自動推導變數型別,這簡直就是在寫javascript啊,這也是我在以上語法變數型別那一塊中標註?的原因,就表示可以寫可以不寫。例如以上範例程式碼就可以寫成:
var name = "eveningwater"
如此看來,我們定義多個變數同樣也可以省略變數型別,如:
var (name,age) = "eveningwater",26
又或者是:
var name1,name2 = "eveningwater","xxx"
go語言的定義變數名的關鍵字var也可以省略,這也是我沒有想到的,如下所示:
name1,name2 := "eveningwater","xxx"
感覺挺神奇的,是吧!go把這種省略了var和type的宣告叫做簡短申明
。這樣一來我們就可以在定義變數的時候用這個":="來定義變數了,不,你想多了,使用這種方式來定義變數是有限制的,那就是這種方式只能夠作用在函數內部,如果我們要定義全域性變數的話,還是要老老實實的寫var關鍵字。
通過以上的說明,我們知道了定義全域性變數和定義區域性變數的方式,如下:
var a string = "hello" //全域性變數 func test() { b := " world" //區域性變數 c := a + b fmt.Printf("%s n", c) }
go語言有個很特殊的變數名,那就是下劃線"_",為什麼說它特殊呢,因為定義它的值都會被丟棄,沒錯,就是丟棄,例如:
_,num = 35,34
其中_變數值為35將會被丟棄,最後就只剩下值為34的num變數了,感覺這種設計也是挺有意思的。
go語言在編譯階段會對宣告但未使用變數報錯,比如以下程式碼就會報錯: 宣告了i變數但並未使用。
package main func main(){ //編譯階段報錯 var i int }
常數其實也就是在程式編譯階段定下來的值嗎,無法被修改,在go語言中常數也可以被定義成數值,布林值或者是字串等型別。它的語法結構如下:
const variableName = value;
例如:
const num int = 10;
其中常數的型別如果需要也可以加上。
以上就是本文內容了,感謝大家觀看,看完本文,想來應該要不了幾分鐘,幾分鐘就掌握了go語言定義變數的概念和方式,想來還是值得的,非常適合新手學習
以上就是go語言的變數定義範例詳解的詳細內容,更多關於go語言變數定義的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45