最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言的變量定義示例詳解

 更新時間:2022年12月20日 15:19:15   作者:夕水  
這篇文章主要為大家介紹了go語言的變量定義示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

特別說明: 本文只適合新手學(xué)習(xí)

這篇文章帶我們?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編譯器會在編譯的時候幫我們自動推導(dǎo)變量類型,這簡直就是在寫javascript啊,這也是我在以上語法變量類型那一塊中標(biāo)注?的原因,就表示可以寫可以不寫。例如以上示例代碼就可以寫成:

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語言定義變量的概念和方式,想來還是值得的,非常適合新手學(xué)習(xí)

以上就是go語言的變量定義示例詳解的詳細內(nèi)容,更多關(guān)于go語言變量定義的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go Java算法之二叉樹的所有路徑示例詳解

    Go Java算法之二叉樹的所有路徑示例詳解

    這篇文章主要為大家介紹了Go Java算法之二叉樹的所有路徑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 聊聊Go語言編譯github上的項目遇到的坑

    聊聊Go語言編譯github上的項目遇到的坑

    這篇文章主要介紹了解決Go語言編譯github上的項目遇到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go存儲基礎(chǔ)使用direct io方法實例

    Go存儲基礎(chǔ)使用direct io方法實例

    這篇文章主要介紹了Go存儲基礎(chǔ)之如何使用direct io方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • go-zero創(chuàng)建RESTful API 服務(wù)的方法

    go-zero創(chuàng)建RESTful API 服務(wù)的方法

    文章介紹了如何使用go-zero框架和goctl工具快速創(chuàng)建RESTfulAPI服務(wù),通過定義.api文件并使用goctl命令,可以自動生成項目結(jié)構(gòu)、路由、請求和響應(yīng)模型以及處理邏輯,感興趣的朋友一起看看吧
    2024-11-11
  • Go語言中樂觀鎖與悲觀鎖的具體使用

    Go語言中樂觀鎖與悲觀鎖的具體使用

    樂觀鎖和悲觀鎖是兩種思想,用于解決并發(fā)場景下的數(shù)據(jù)競爭問題,本文主要介紹了Go語言中樂觀鎖與悲觀鎖的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 淺析Go語言中的Range關(guān)鍵字

    淺析Go語言中的Range關(guān)鍵字

    Range是go語言中很獨特的一個關(guān)鍵詞,也相當(dāng)好用。下面就跟著小編來再聊聊這個Range關(guān)鍵字,有需要的朋友們可以參考借鑒。
    2016-09-09
  • golang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Golang flag包的具體使用

    Golang flag包的具體使用

    本文主要介紹了Golang flag包的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Go語言Zap庫Logger的定制化和封裝使用詳解

    Go語言Zap庫Logger的定制化和封裝使用詳解

    這篇文章主要介紹了Go語言Zap庫Logger的定制化和封裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 使用Go語言實現(xiàn)接口繼承的方式

    使用Go語言實現(xiàn)接口繼承的方式

    在Go語言中,接口(interface)是一種定義方法集合的類型,它并不包含方法的具體實現(xiàn),只是規(guī)定實現(xiàn)該接口的類型必須提供這些方法的實現(xiàn),下面我將通過示例代碼來詳細解釋如何使用Go語言實現(xiàn)接口組合,以及為什么這種方式可以看作是實現(xiàn)接口繼承的一種方式
    2024-05-05

最新評論

临西县| 隆化县| 镇平县| 和平县| 射阳县| 石棉县| 丹棱县| 呼图壁县| 山阴县| 通化市| 顺义区| 鹰潭市| 克拉玛依市| 黑水县| 东海县| 临洮县| 阳江市| 莆田市| 盐山县| 闽清县| 沂水县| 斗六市| 湖南省| 乌拉特中旗| 平阴县| 望城县| 荣昌县| 齐齐哈尔市| 晋中市| 靖安县| 全州县| 建平县| 彩票| 吉安市| 南雄市| 永吉县| 平果县| 万源市| 凤翔县| 桦川县| 荔浦县|