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

Go語言中的變量和常量

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

一、變量相關

1.變量聲明

C# : int a;

Go : var a int; 需要在前面加一個var關鍵字,后面定義類型

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

2.變量初始化

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

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

3.變量賦值

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

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

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

大概結論就是,這個賦值操作可以看成一個原子操作。

4.匿名變量

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

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

二、常量相關

1.字面常量

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

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

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.預定義常量

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

iota是個什么玩意?

iota比較特殊,可以被認為是一個可被編譯器修改的常量,在每一個const關鍵字出現(xiàn)時被 重置為0,然后在下一個const出現(xiàn)之前,每出現(xiàn)一次iota,其所代表的數(shù)字會自動增1。 (一個計數(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 這個東西用好了就能當枚舉使用了,正好Go語言不支持enum關鍵字

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

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

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

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

    細說Go語言中空結構體的奇妙用途

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

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

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

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

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

    Go標準庫日志打印及同時輸出到控制臺與文件

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

    Go中Vendo機制的使用

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

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

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

    Golang的strings.Split()踩坑記錄

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

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

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

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

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

最新評論

儋州市| 滨州市| 林芝县| 锦屏县| 南投市| 孙吴县| 济阳县| 香格里拉县| 元阳县| 芒康县| 宝清县| 外汇| 新巴尔虎左旗| 岗巴县| 乐至县| 当阳市| 屯留县| 上思县| 莆田市| 简阳市| 湾仔区| 隆回县| 武乡县| 五大连池市| 延边| 田阳县| 开化县| 昂仁县| 大厂| 嵊泗县| 昆山市| 梅河口市| 大荔县| 昌平区| 东辽县| 东源县| 桐柏县| 莒南县| 邹平县| 阿荣旗| 镇赉县|