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

一篇文章學(xué)會GO語言中的變量

 更新時間:2022年07月04日 09:31:51   作者:溫文艾爾  
Go語言是靜態(tài)類型語言,因此變量有明確類型的,編譯器也會檢查變量類型的正確性,下面這篇文章主要給大家介紹了關(guān)于GO語言中變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.標(biāo)識符

在編程語言中標(biāo)識符就是程序員定義的具有特殊意義的詞,比如變量名,常量名,函數(shù) .bc,_123,a1232

2.關(guān)鍵字

關(guān)鍵字是指編程語言中預(yù)先定義好的具有特殊含義的標(biāo)識符,關(guān)鍵字和保留字都不建議用作變量名

Go語言中有25個關(guān)鍵字

break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var

還有37個保留字

Constants:    true  false  iota  nil

        Types:    int  int8  int16  int32  int64  
                  uint  uint8  uint16  uint32  uint64  uintptr
                  float32  float64  complex128  complex64
                  bool  byte  rune  string  error

    Functions:   make  len  cap  new  append  copy  close  delete
                 complex  real  imag
                 panic  recover

3.變量

變量的功能是存儲數(shù)據(jù),不同的變量保存的數(shù)據(jù)類型可能會不一樣,經(jīng)過半個多世紀(jì)的發(fā)展,編程語言已經(jīng)基本形成了一套固定的類型,常見變量的數(shù)據(jù)類型有:整型、浮點型、布爾型等

Go語言中的每一個變量都有自己的類型,并且變量必須經(jīng)過聲明才能開始使用

3.1 Go語言中變量的聲明

聲明格式

var 變量名 變量類型

變量聲明以關(guān)鍵字var開頭,變量類型放在變量的后面,行尾無需分號,舉個例子

var name string
var age int
var isOk bool

3.2 批量聲明

每聲明一個變量就需要寫var關(guān)鍵字會比較繁瑣,go語言中還支持批量變量聲明:

var (
    a string
    b int
    c bool
    d float32
)

3.3 變量的初始化

Go語言在聲明變量的時候,會自動對變量對應(yīng)的內(nèi)存區(qū)域進(jìn)行初始化操作,每個變量會被初始化成其類型的默認(rèn)值。例如整數(shù)和浮點型變量的默認(rèn)值為0,字符串變量的默認(rèn)值為空字符串,布爾型變量默認(rèn)為false。切片、函數(shù)、指針變量的默認(rèn)為nil

func main() {
	var (
		test01 string
		test02 int
		test03 bool
		test04 float32
	)
	fmt.Println(test01, test02, test03, test04)
}
 0 false 0

當(dāng)然我們也可在聲明變量的時候為其指定初始值。變量初始化的標(biāo)準(zhǔn)格式如下:

var 變量名 類型=表達(dá)式

例子

var name string="wql"
var age int =18

或者一次初始化多個變量

var name,age="wql",20

有時我們會將變量的類型省略,這個時候編譯器會根據(jù)等號右邊的值來推導(dǎo)變量的類型完成初始化

var name = "wql"
var age = 18

3.4 短變量聲明

在函數(shù)內(nèi)部,可以使用更簡略的:=方式聲明并初始化變量

package main

//告訴程序需要fmt包,fmt具有打印輸出的函數(shù)
import "fmt"

var n int

func main() {
	b := 123
	fmt.Println(b)
}

3.5匿名變量

在使用多重賦值時,如果想要忽略某個值,可以使用匿名變量(anonymous variable)。匿名變量用一個下劃線表示例如

package main

//告訴程序需要fmt包,fmt具有打印輸出的函數(shù)
import "fmt"

func main() {


	x, _ := foo()
	_, y := foo()
	fmt.Println("x=", x)
	fmt.Println("y=", y)

}

func foo() (int, string) {
	return 10, "wql"
}
123 123
hello wql
x= 10
y= wql

匿名變量不占用命名空間,不會分配內(nèi)存,所以匿名變量之間不存在重復(fù)聲明

注意事項

  • 函數(shù)外的每個語句必須以關(guān)鍵字開始(var、const、func等)
  • :=不能用在函數(shù)外
  • _多用于占位,表示忽略值

4.常量

相對于變量,常量時恒定不變的值,多用于定義程序運(yùn)行期間不會改變的哪些值。常量的聲明和變量的聲明非常類似,知識把var換成了const,常量在定義的時候必須賦值

    const pi = 3.12
    const e = 2.7
    fmt.Println(pi, e)
1
2
3
在聲明了pi和e這兩個常量之后,在整個程序運(yùn)行期間它們的值都不能再發(fā)生變化了

多個常量也可以一起聲明

    const(
        p1 = 2
        p2 = 4
    )

const同時聲明多個常量時,如果省略了值則表示和上面一行的值相同,例如

    const(
        p3 = 200
        p4
        p5
    )

上面的實例中p3,p4,p5的值都是200

5.iota

iota是go語言的常量計數(shù)器,只能在常量的表達(dá)式中使用

iota在const關(guān)鍵字出現(xiàn)時將被重置為0,const中每新增一行常量聲明將使iota計數(shù)一次,iota可以理解為const語句塊中的行索引,使用iota能簡化定義,在定義枚舉時很有用

    const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )
    fmt.Println(n1, n2, n3, n4)
0 1 2 3

`幾個常見的iota實例:

`使用下劃線跳過某些值

    const (
        n1 = iota //0
        n2        //1
        _
        n4 //3
    )
iota聲明中間插隊
    const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )

也就是說有無初始值,iota都+1,常量有初始值就是初始值,沒有初始值為iota+1

    const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 << (10 * iota)
        PB = 1 << (10 * iota)
    )

多個iota定義在一行

    const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )

所以iota有兩個特點

  • 當(dāng)遇見const出現(xiàn)被置為0
  • 每新增一行就+1

總結(jié)

到此這篇關(guān)于一篇文章學(xué)會GO語言中變量的文章就介紹到這了,更多相關(guān)GO語言變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go語言在請求http時加入自定義http header的方法

    go語言在請求http時加入自定義http header的方法

    這篇文章主要介紹了go語言在請求http時加入自定義http header的方法,實例分析了Go語言http請求的原理與操作技巧,需要的朋友可以參考下
    2015-03-03
  • 使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析)

    使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析)

    這篇文章主要介紹了使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10
  • Go語言數(shù)據(jù)結(jié)構(gòu)之單鏈表的實例詳解

    Go語言數(shù)據(jù)結(jié)構(gòu)之單鏈表的實例詳解

    鏈表由一系列結(jié)點(鏈表中每一個元素稱為結(jié)點)組成,結(jié)點可以在運(yùn)行時動態(tài)生成。本文將通過五個例題帶大家深入了解Go語言中單鏈表的用法,感興趣的可以了解一下
    2022-08-08
  • golang組件swagger生成接口文檔實踐示例

    golang組件swagger生成接口文檔實踐示例

    這篇文章主要為大家介紹了golang組件swagger生成接口文檔實踐示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Go語言接口用法實例

    Go語言接口用法實例

    這篇文章主要介紹了Go語言接口用法,實例分析了Go語言接口的功能、定義及使用技巧,需要的朋友可以參考下
    2015-02-02
  • 一文帶你了解Go語言中的指針和結(jié)構(gòu)體

    一文帶你了解Go語言中的指針和結(jié)構(gòu)體

    前面的兩篇文章對?Go?語言的基礎(chǔ)語法和基本數(shù)據(jù)類型以及幾個復(fù)合數(shù)據(jù)類型進(jìn)行介紹,本文將對?Go?里面的指針和結(jié)構(gòu)體進(jìn)行介紹,也為后續(xù)文章做鋪墊,感興趣的可以了解一下
    2022-11-11
  • 初探GO中unsafe包的使用

    初探GO中unsafe包的使用

    unsafe是Go語言標(biāo)準(zhǔn)庫中的一個包,提供了一些不安全的編程操作,本文將深入探討Go語言中的unsafe包,介紹它的使用方法和注意事項,感興趣的可以了解下
    2023-08-08
  • Go語言中的內(nèi)存布局詳解

    Go語言中的內(nèi)存布局詳解

    這篇文章主要給大家介紹了Go語言中的內(nèi)存布局,那么本文中將嘗試解釋Go如何在內(nèi)存中構(gòu)建結(jié)構(gòu)體,以及結(jié)構(gòu)體在字節(jié)和比特位方面是什么樣子。 有需要的朋友們可以參考借鑒,感興趣的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • Go模板template用法詳解

    Go模板template用法詳解

    這篇文章主要介紹了Go標(biāo)準(zhǔn)庫template模板用法詳解;包括GO模板注釋,作用域,語法,函數(shù)等知識,需要的朋友可以參考下
    2022-04-04
  • golang NewRequest/gorequest實現(xiàn)http請求的示例代碼

    golang NewRequest/gorequest實現(xiàn)http請求的示例代碼

    本文主要介紹了golang NewRequest/gorequest實現(xiàn)http請求的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

定日县| 邢台市| 永嘉县| 清新县| 麻栗坡县| 科尔| 阳原县| 公主岭市| 苏尼特左旗| 于都县| 福安市| 新沂市| 宁河县| 通海县| 攀枝花市| 巴东县| 五台县| 宾川县| 衡南县| 山阴县| 海南省| 梅河口市| 阿图什市| 四川省| 阿鲁科尔沁旗| 营口市| 宣汉县| 卓资县| 汕头市| 维西| 鹤壁市| 清徐县| 江永县| 麻栗坡县| 太仓市| 民权县| 镇雄县| 宣化县| 兴化市| 扶沟县| 张家界市|