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

Go語言中的變量和常量

 更新時(shí)間:2022年07月12日 08:37:55   作者:奮斗的大橙子  
這篇文章介紹了Go語言中的變量和常量,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、變量相關(guān)

1.變量聲明

C# : int a;

Go : var a int; 需要在前面加一個(gè)var關(guān)鍵字,后面定義類型

可以使用 var( a int; b string;)減少var

2.變量初始化

var a int = 10   // 正確的使用方式1
 
var a = 10       // 正確的使用方式2,編譯器可以自動(dòng)推導(dǎo)出v2的類型
 
a := 10          // 正確的使用方式3,編譯器可以自動(dòng)推導(dǎo)出v3的類型

在:=左側(cè)的變量不應(yīng)該是已經(jīng)被聲明過的

3.變量賦值

注意:Go語言的新特性 “Simultaneous Assignment” (平行賦值、多重賦值 ......)

a,b = b,a 可以方便的交換兩個(gè)數(shù)的值,之前的其他語言可能都需要加一個(gè)temp變量

對(duì)于這個(gè)我其實(shí)是有疑問的,就是Go語言是如何實(shí)現(xiàn)該功能的?按照我的想法如果是go語言底層也是按照加入一個(gè)變量的方式,那么豈不是輸出的a和b都是b的值了?達(dá)不到交換的目的。

大概結(jié)論就是,這個(gè)賦值操作可以看成一個(gè)原子操作。

4.匿名變量

Go可以定義匿名變量來減少不需要的代碼,例如,我只關(guān)心Value,不想打印Key的時(shí)候可以用“_”代替變量。同理對(duì)于有多個(gè)返回值的方法,可以用“_”代替我不想要的返回值,這樣就減少了變量的定義。

func main(){
       x:=make(map[string]int16)
       x["apple"] =100
       x["orange"] = 50
       x["pear"]=500
       for _,value := range x{
              fmt.Println(value);
       }
}

二、常量相關(guān)

1.字面常量

Go語言的字面常量是無類型的,可以被賦值給任何類型的變量。

例如 AConstNumber 可以賦值給int、float32等類型,但是賦值給string就出錯(cuò)了

package main
import ( "fmt")

func main(){
       const AConstNumber = -100
       var x int = AConstNumber
       var y float32 = AConstNumber
       fmt.Println("x:",x)
       fmt.Println("y:",y)
}

2.預(yù)定義常量

Go語言預(yù)定義了這些常量:true、false和iota。

iota是個(gè)什么玩意?

iota比較特殊,可以被認(rèn)為是一個(gè)可被編譯器修改的常量,在每一個(gè)const關(guān)鍵字出現(xiàn)時(shí)被 重置為0,然后在下一個(gè)const出現(xiàn)之前,每出現(xiàn)一次iota,其所代表的數(shù)字會(huì)自動(dòng)增1。 (一個(gè)計(jì)數(shù)器?)

例如:

func main(){
       const(
              a = iota *100
              b = iota *100
              c = iota *100
       )
       const(
              d = iota *100
              e = iota *100
              f = iota *100
       )
       fmt.Println(a)  // 打印 0
       fmt.Println(b)  // 打印 100
       fmt.Println(c)  // 打印 200
       fmt.Println(d)  // 打印 0
       fmt.Println(e)  // 打印 100
       fmt.Println(f)  // 打印 200
}

所以 iota 這個(gè)東西用好了就能當(dāng)枚舉使用了,正好Go語言不支持enum關(guān)鍵字

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Golang算法問題之?dāng)?shù)組按指定規(guī)則排序的方法分析

    Golang算法問題之?dāng)?shù)組按指定規(guī)則排序的方法分析

    這篇文章主要介紹了Golang算法問題之?dāng)?shù)組按指定規(guī)則排序的方法,結(jié)合實(shí)例形式分析了Go語言數(shù)組排序相關(guān)算法原理與操作技巧,需要的朋友可以參考下
    2017-02-02
  • 細(xì)說Go語言中空結(jié)構(gòu)體的奇妙用途

    細(xì)說Go語言中空結(jié)構(gòu)體的奇妙用途

    Go語言中,我們可以定義空結(jié)構(gòu)體,即沒有任何成員變量的結(jié)構(gòu)體,使用關(guān)鍵字?struct{}?來表示。這種結(jié)構(gòu)體似乎沒有任何用處,但實(shí)際上它在?Go?語言中的應(yīng)用非常廣泛,本文就來詳解講講
    2023-05-05
  • Go語言模型:string的底層數(shù)據(jù)結(jié)構(gòu)與高效操作詳解

    Go語言模型:string的底層數(shù)據(jù)結(jié)構(gòu)與高效操作詳解

    這篇文章主要介紹了Go語言模型:string的底層數(shù)據(jù)結(jié)構(gòu)與高效操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • GO語言實(shí)現(xiàn)文件上傳的示例代碼

    GO語言實(shí)現(xiàn)文件上傳的示例代碼

    這篇文章主要分享一下golang實(shí)現(xiàn)文件上傳的流程和具體代碼,供大家參考,感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助
    2022-08-08
  • Go標(biāo)準(zhǔn)庫(kù)日志打印及同時(shí)輸出到控制臺(tái)與文件

    Go標(biāo)準(zhǔn)庫(kù)日志打印及同時(shí)輸出到控制臺(tái)與文件

    Go語言內(nèi)置的log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù),下面這篇文章主要給大家介紹了關(guān)于Go標(biāo)準(zhǔn)庫(kù)日志打印及同時(shí)輸出到控制臺(tái)與文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Go中Vendo機(jī)制的使用

    Go中Vendo機(jī)制的使用

    自Go1.6起,Go語言正式啟用vendor機(jī)制,允許將項(xiàng)目依賴放入項(xiàng)目?jī)?nèi)的vendor目錄,類似私有GOPATH,本文就來介紹一下Vendo機(jī)制的使用,感興趣的可以了解一下
    2024-10-10
  • Centos下搭建golang環(huán)境及vim高亮Go關(guān)鍵字設(shè)置的方法

    Centos下搭建golang環(huán)境及vim高亮Go關(guān)鍵字設(shè)置的方法

    這篇文章先給大家詳細(xì)介紹了在Centos下搭建golang環(huán)境的步驟,大家按照下面的方法就可以自己搭建golang環(huán)境,搭建完成后又給大家介紹了vim高亮Go關(guān)鍵字設(shè)置的方法,文中通過示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-11-11
  • Golang的strings.Split()踩坑記錄

    Golang的strings.Split()踩坑記錄

    工作中,當(dāng)我們需要對(duì)字符串按照某個(gè)字符串切分成字符串?dāng)?shù)組數(shù)時(shí),常用到strings.Split(),本文主要介紹了Golang的strings.Split()踩坑記錄,感興趣的可以了解一下
    2022-05-05
  • Go語言實(shí)現(xiàn)猜謎小游戲

    Go語言實(shí)現(xiàn)猜謎小游戲

    這篇文章主要為大家介紹了Go語言實(shí)現(xiàn)猜謎小游戲示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)示例

    Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)示例

    這篇文章主要介紹了Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論

黎川县| 治县。| 佛冈县| 秦皇岛市| 南投县| 大庆市| 大足县| 临夏市| 新密市| 新田县| 镇康县| 宁化县| 瑞丽市| 隆林| 和林格尔县| 山西省| 固镇县| 辉县市| 东兰县| 临沂市| 明水县| 高邑县| 嘉义县| 台江县| 赤水市| 邓州市| 阿巴嘎旗| 清原| 巴马| 嘉黎县| 阿坝县| 东明县| 疏勒县| 广州市| 东丰县| 德钦县| 太仓市| 六枝特区| 岑巩县| 乌海市| 连平县|