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

一篇文章學會GO語言中的變量

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

1.標識符

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

2.關鍵字

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

Go語言中有25個關鍵字

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)過半個多世紀的發(fā)展,編程語言已經(jīng)基本形成了一套固定的類型,常見變量的數(shù)據(jù)類型有:整型、浮點型、布爾型等

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

3.1 Go語言中變量的聲明

聲明格式

var 變量名 變量類型

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

var name string
var age int
var isOk bool

3.2 批量聲明

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

var (
    a string
    b int
    c bool
    d float32
)

3.3 變量的初始化

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

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

當然我們也可在聲明變量的時候為其指定初始值。變量初始化的標準格式如下:

var 變量名 類型=表達式

例子

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

或者一次初始化多個變量

var name,age="wql",20

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

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)存,所以匿名變量之間不存在重復聲明

注意事項

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

4.常量

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

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

多個常量也可以一起聲明

    const(
        p1 = 2
        p2 = 4
    )

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

    const(
        p3 = 200
        p4
        p5
    )

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

5.iota

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

iota在const關鍵字出現(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有兩個特點

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

總結(jié)

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

相關文章

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

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

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

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

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

    通過與Java功能上的對比來學習Go語言

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

    go?goroutine實現(xiàn)素數(shù)統(tǒng)計的示例

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

    goland 實現(xiàn)自動格式化代碼

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

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

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

    詳解Go 并發(fā)

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

    Golang使用Consul詳解

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

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

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

    詳解Golang中零拷貝的原理以及實踐

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

最新評論