欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.標(biāo)識(shí)符

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

2.關(guān)鍵字

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

Go語言中有25個(gè)關(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個(gè)保留字

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.變量

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

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

3.1 Go語言中變量的聲明

聲明格式

var 變量名 變量類型

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

var name string
var age int
var isOk bool

3.2 批量聲明

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

var (
    a string
    b int
    c bool
    d float32
)

3.3 變量的初始化

Go語言在聲明變量的時(shí)候,會(huì)自動(dòng)對(duì)變量對(duì)應(yīng)的內(nèi)存區(qū)域進(jìn)行初始化操作,每個(gè)變量會(huì)被初始化成其類型的默認(rèn)值。例如整數(shù)和浮點(diǎn)型變量的默認(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)然我們也可在聲明變量的時(shí)候?yàn)槠渲付ǔ跏贾怠W兞砍跏蓟臉?biāo)準(zhǔn)格式如下:

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

例子

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

或者一次初始化多個(gè)變量

var name,age="wql",20

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

var name = "wql"
var age = 18

3.4 短變量聲明

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

package main

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

var n int

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

3.5匿名變量

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

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

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

注意事項(xiàng)

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

4.常量

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

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

多個(gè)常量也可以一起聲明

    const(
        p1 = 2
        p2 = 4
    )

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

    const(
        p3 = 200
        p4
        p5
    )

上面的實(shí)例中p3,p4,p5的值都是200

5.iota

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

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

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

`幾個(gè)常見的iota實(shí)例:

`使用下劃線跳過某些值

    const (
        n1 = iota //0
        n2        //1
        _
        n4 //3
    )
iota聲明中間插隊(duì)
    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)
    )

多個(gè)iota定義在一行

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

所以iota有兩個(gè)特點(diǎn)

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

總結(jié)

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

相關(guān)文章

  • Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn)

    Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn)

    這篇文章主要介紹了Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Go語言中更優(yōu)雅的錯(cuò)誤處理

    Go語言中更優(yōu)雅的錯(cuò)誤處理

    Go語言中的錯(cuò)誤處理是一個(gè)被大家經(jīng)常拿出來討論的話題(另外一個(gè)是泛型)。篇文章我們將討論一下如何在現(xiàn)行的 Golang 框架下提供更友好和優(yōu)雅的錯(cuò)誤處理。需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 通過與Java功能上的對(duì)比來學(xué)習(xí)Go語言

    通過與Java功能上的對(duì)比來學(xué)習(xí)Go語言

    這篇文章主要介紹了通過與Java功能上的對(duì)比來學(xué)習(xí)Go語言的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • go?goroutine實(shí)現(xiàn)素?cái)?shù)統(tǒng)計(jì)的示例

    go?goroutine實(shí)現(xiàn)素?cái)?shù)統(tǒng)計(jì)的示例

    這篇文章主要介紹了go?goroutine實(shí)現(xiàn)素?cái)?shù)統(tǒng)計(jì),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • goland 實(shí)現(xiàn)自動(dòng)格式化代碼

    goland 實(shí)現(xiàn)自動(dòng)格式化代碼

    這篇文章主要介紹了goland 實(shí)現(xiàn)自動(dòng)格式化代碼的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go實(shí)現(xiàn)比較時(shí)間大小

    Go實(shí)現(xiàn)比較時(shí)間大小

    這篇文章主要介紹了Go實(shí)現(xiàn)比較時(shí)間大小的方法和示例,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-04-04
  • 詳解Go 并發(fā)

    詳解Go 并發(fā)

    這篇文章主要介紹了Go 并發(fā)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)go語言,感興趣的朋友可以了解下
    2020-09-09
  • Golang使用Consul詳解

    Golang使用Consul詳解

    Consul是一個(gè)服務(wù)發(fā)現(xiàn)軟件, 提供了服務(wù)發(fā)現(xiàn)\鍵值存儲(chǔ)\健康檢查等功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Golang中的包及包管理工具go?mod詳解

    Golang中的包及包管理工具go?mod詳解

    這篇文章主要介紹了Golang中的包及包管理工具go?mod,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 詳解Golang中零拷貝的原理以及實(shí)踐

    詳解Golang中零拷貝的原理以及實(shí)踐

    零拷貝技術(shù)相信大家都有所耳聞,但是本文不僅會(huì)講述零拷貝技術(shù)的原理,并將從實(shí)際代碼出發(fā),看看零拷貝技術(shù)在golang中的應(yīng)用,現(xiàn)在讓我們開始吧
    2023-07-07

最新評(píng)論