日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

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

作者:溫文艾爾 ? 更新時(shí)間: 2022-08-26 編程語(yǔ)言

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

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

2.關(guān)鍵字

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

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

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

3.1 Go語(yǔ)言中變量的聲明

聲明格式

var 變量名 變量類型

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

var name string
var age int
var isOk bool

3.2 批量聲明

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

var (
    a string
    b int
    c bool
    d float32
)

3.3 變量的初始化

Go語(yǔ)言在聲明變量的時(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)右邊的值來(lái)推導(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è)語(yǔ)句必須以關(guān)鍵字開(kāi)始(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語(yǔ)言的常量計(jì)數(shù)器,只能在常量的表達(dá)式中使用

iota在const關(guān)鍵字出現(xiàn)時(shí)將被重置為0,const中每新增一行常量聲明將使iota計(jì)數(shù)一次,iota可以理解為const語(yǔ)句塊中的行索引,使用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è)常見(jiàn)的iota實(shí)例:

`使用下劃線跳過(guò)某些值

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

也就是說(shuō)有無(wú)初始值,iota都+1,常量有初始值就是初始值,沒(méi)有初始值為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)遇見(jiàn)const出現(xiàn)被置為0
  • 每新增一行就+1

總結(jié)

原文鏈接:https://blog.csdn.net/wenwenaier/article/details/125130639

欄目分類
最近更新