欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語(yǔ)言字面量和變量 go語(yǔ)言的數(shù)據(jù)類型

Go語(yǔ)言和其他語(yǔ)言的不同之基本語(yǔ)法

Go語(yǔ)言作為出現(xiàn)比較晚的一門(mén)編程語(yǔ)言,在其原生支持高并發(fā)、云原生等領(lǐng)域的優(yōu)秀表現(xiàn),像目前比較流行的容器編排技術(shù)Kubernetes、容器技術(shù)Docker都是用Go語(yǔ)言寫(xiě)的,像Java等其他面向?qū)ο蟮恼Z(yǔ)言,雖然也能做云原生相關(guān)的開(kāi)發(fā),但是支持的程度遠(yuǎn)沒(méi)有Go語(yǔ)言高,憑借其語(yǔ)言特性和簡(jiǎn)單的編程方式,彌補(bǔ)了其他編程語(yǔ)言一定程度上的不足,一度成為一個(gè)熱門(mén)的編程語(yǔ)言。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比吉縣網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式吉縣網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋吉縣地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

最近在學(xué)習(xí)Go語(yǔ)言,我之前使用過(guò)C#、Java等面向?qū)ο缶幊痰恼Z(yǔ)言,發(fā)現(xiàn)其中有很多的編程方式和其他語(yǔ)言有區(qū)別的地方,好記性不如爛筆頭,總結(jié)一下,和其他語(yǔ)言做個(gè)對(duì)比。這里只總結(jié)差異的地方,具體的語(yǔ)法不做詳細(xì)的介紹。

種一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在。

3)變量初始化時(shí)候可以和其他語(yǔ)言一樣直接在變量后面加等號(hào),等號(hào)后面為要初始化的值,也可以使用變量名:=變量值的簡(jiǎn)單方式

3)變量賦值 Go語(yǔ)言的變量賦值和多數(shù)語(yǔ)言一致,但是Go語(yǔ)言提供了多重賦值的功能,比如下面這個(gè)交換i、j變量的語(yǔ)句:

在不支持多重賦值的語(yǔ)言中,交換兩個(gè)變量的值需要引入一個(gè)中間變量:

4)匿名變量

在使用其他語(yǔ)言時(shí),有時(shí)候要獲取一個(gè)值,卻因?yàn)樵摵瘮?shù)返回多個(gè)值而不得不定義很多沒(méi)有的變量,Go語(yǔ)言可以借助多重返回值和匿名變量來(lái)避免這種寫(xiě)法,使代碼看起來(lái)更優(yōu)雅。

假如GetName()函數(shù)返回3個(gè)值,分別是firstName,lastName和nickName

若指向獲得nickName,則函數(shù)調(diào)用可以這樣寫(xiě)

這種寫(xiě)法可以讓代碼更清晰,從而大幅降低溝通的復(fù)雜度和維護(hù)的難度。

1)基本常量

常量使用關(guān)鍵字const 定義,可以限定常量類型,但不是必須的,如果沒(méi)有定義常量的類型,是無(wú)類型常量

2)預(yù)定義常量

Go語(yǔ)言預(yù)定義了這些常量 true、false和iota

iota比較特殊,可以被任務(wù)是一個(gè)可被編譯器修改的常量,在每個(gè)const關(guān)鍵字出現(xiàn)時(shí)被重置為0,然后在下一個(gè)const出現(xiàn)之前每出現(xiàn)一個(gè)iota,其所代表的數(shù)字會(huì)自動(dòng)加1.

3)枚舉

1)int 和int32在Go語(yǔ)言中被認(rèn)為是兩種不同類型的類型

2)Go語(yǔ)言定義了兩個(gè)浮點(diǎn)型float32和float64,其中前者等價(jià)于C語(yǔ)言的float類型,后者等價(jià)于C語(yǔ)言的double類型

3)go語(yǔ)言支持復(fù)數(shù)類型

復(fù)數(shù)實(shí)際上是由兩個(gè)實(shí)數(shù)(在計(jì)算機(jī)中使用浮點(diǎn)數(shù)表示)構(gòu)成,一個(gè)表示實(shí)部(real)、一個(gè)表示虛部(imag)。也就是數(shù)學(xué)上的那個(gè)復(fù)數(shù)

復(fù)數(shù)的表示

實(shí)部與虛部

對(duì)于一個(gè)復(fù)數(shù)z=complex(x,y),就可以通過(guò)Go語(yǔ)言內(nèi)置函數(shù)real(z)獲得該復(fù)數(shù)的實(shí)部,也就是x,通過(guò)imag(z)獲得該復(fù)數(shù)的虛部,也就是y

4)數(shù)組(值類型,長(zhǎng)度在定義后無(wú)法再次修改,每次傳遞都將產(chǎn)生一個(gè)副本。)

5)數(shù)組切片(slice)

數(shù)組切片(slice)彌補(bǔ)了數(shù)組的不足,其數(shù)據(jù)結(jié)構(gòu)可以抽象為以下三個(gè)變量:

6)Map 在go語(yǔ)言中Map不需要引入任何庫(kù),使用很方便

Go循環(huán)語(yǔ)句只支持for關(guān)鍵字,不支持while和do-while

goto語(yǔ)句的語(yǔ)義非常簡(jiǎn)單,就是跳轉(zhuǎn)到本函數(shù)內(nèi)的某個(gè)標(biāo)簽

今天就介紹到這里,以后我會(huì)在總結(jié)Go語(yǔ)言在其他方面比如并發(fā)編程、面向?qū)ο蟆⒕W(wǎng)絡(luò)編程等方面的不同及使用方法。希望對(duì)大家有所幫助。

go語(yǔ)言語(yǔ)法(基礎(chǔ)語(yǔ)法篇)

import "workname/packetfolder"

導(dǎo)入多個(gè)包

方法調(diào)用 包名.函數(shù)//不是函數(shù)或結(jié)構(gòu)體所處文件或文件夾名

packagename.Func()

前面加個(gè)點(diǎn)表示省略調(diào)用,那么調(diào)用該模塊里面的函數(shù),可以不用寫(xiě)模塊名稱了:

當(dāng)導(dǎo)入一個(gè)包時(shí),該包下的文件里所有init()函數(shù)都會(huì)被執(zhí)行,然而,有些時(shí)候我們并不需要把整個(gè)包都導(dǎo)入進(jìn)來(lái),僅僅是是希望它執(zhí)行init()函數(shù)而已。下劃線的作用僅僅是為了調(diào)用init()函數(shù),所以無(wú)法通過(guò)包名來(lái)調(diào)用包中的其他函數(shù)

import _ package

變量聲明必須要使用否則會(huì)報(bào)錯(cuò)。

全局變量運(yùn)行聲明但不使用。

func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值a 類型a, 返回值b 類型b,...)

func 函數(shù)名 (參數(shù)1,參數(shù)2,...) (返回值類型1, 返回值類型2,...)

func (this *結(jié)構(gòu)體名) 函數(shù)名(參數(shù) string) (返回值類型1, 返回值類型2){}

使用大小來(lái)區(qū)分函數(shù)可見(jiàn)性

大寫(xiě)是public類型

小寫(xiě)是private類型

func prifunc int{}

func pubfunc int{}

聲明靜態(tài)變量

const value int

定義變量

var value int

聲明一般類型、接口和結(jié)構(gòu)體

聲明函數(shù)

func function () int{}

go里面所有的空值對(duì)應(yīng)如下

通道類型

內(nèi)建函數(shù) new 用來(lái)分配內(nèi)存,它的第一個(gè)參數(shù)是一個(gè)類型,不是一個(gè)值,它的返回值是一個(gè)指向新分配類型零值的指針

func new(Type) *Type

[這位博主有非常詳細(xì)的分析]

Go 語(yǔ)言支持并發(fā),我們只需要通過(guò) go 關(guān)鍵字來(lái)開(kāi)啟 goroutine 即可。

goroutine 是輕量級(jí)線程,goroutine 的調(diào)度是由 Golang 運(yùn)行時(shí)進(jìn)行管理的。

同一個(gè)程序中的所有 goroutine 共享同一個(gè)地址空間。

語(yǔ)法格式如下:

通道(channel)是用來(lái)傳遞數(shù)據(jù)的一個(gè)數(shù)據(jù)結(jié)構(gòu)。

通道的聲明

通道可用于兩個(gè) goroutine 之間通過(guò)傳遞一個(gè)指定類型的值來(lái)同步運(yùn)行和通訊。操作符 - 用于指定通道的方向,發(fā)送或接收。如果未指定方向,則為雙向通道。

[這里有比較詳細(xì)的用例]

go里面的空接口可以指代任何類型(無(wú)論是變量還是函數(shù))

聲明空接口

go里面的的強(qiáng)制類型轉(zhuǎn)換語(yǔ)法為:

int(data)

如果是接口類型的強(qiáng)制轉(zhuǎn)成其他類型的語(yǔ)法為:

go里面的強(qiáng)制轉(zhuǎn)換是將值復(fù)制過(guò)去,所以在數(shù)據(jù)量的時(shí)候有比較高的運(yùn)行代價(jià)

Go語(yǔ)言變量的作用域

2021-10-22

每一個(gè)變量(常量、類型或函數(shù))在程序中都有一定的作用范圍。稱之為作用域。

Go語(yǔ)言在編譯時(shí)會(huì)檢查每一個(gè)變量是否使用過(guò),未使用過(guò)的變量就會(huì)編譯錯(cuò)誤。

根據(jù)變量定義位置的不同,可以分為以下三個(gè)類型:

在函數(shù)體內(nèi)被聲明的變量稱之為局部變量,作用在函數(shù)體內(nèi),函數(shù)的參數(shù)和返回值變量都屬于局部變量。局部變量不會(huì)一直存在,在函數(shù)被調(diào)用時(shí)存在,函數(shù)調(diào)用結(jié)束后變量就會(huì)被銷毀,即生命周期。

例子:其中a、b均為局部變量,只會(huì)在main函數(shù)內(nèi)有效

在函數(shù)體外被聲明的變量稱之為全局變量,作用于所有源文件。不包含這個(gè)全局變量的源文件需要使用"import"關(guān)鍵字引入全局變量所在的源文件之后才能使用這個(gè)全局變量。

全局變量聲明必須以 var 關(guān)鍵字開(kāi)頭,如果想要在外部包中使用全局變量的首字母必須大寫(xiě)。

例如:global為全局在main2和main函數(shù)中都能使用

函數(shù)名后面的小括號(hào)里定義的變量, 用于接受來(lái)自調(diào)用函數(shù)的參數(shù)。用于接收調(diào)用該函數(shù)時(shí)傳入的參數(shù)。

例如:下面的例子中,第十七行a、b為sum函數(shù)定義的形參,用于傳入main函數(shù)中的AF、BF

字面量、常量、和變量有什么區(qū)別?

區(qū)別:

1,在計(jì)算機(jī)科學(xué)中,字面量(literal)是用于表達(dá)源代碼中一個(gè)固定值的表示法(notation)。幾乎所有計(jì)算機(jī)編程語(yǔ)言都具有對(duì)基本值的字面量表示,諸如:整數(shù)、浮點(diǎn)數(shù)以及字符串;而有很多也對(duì)布爾類型和字符類型的值也支持字面量表示;還有一些甚至對(duì)枚舉類型的元素以及像數(shù)組、記錄和對(duì)象等復(fù)合類型的值也支持字面量表示法。

2,“常量”在程序運(yùn)行時(shí),不會(huì)被修改的量。換言之,常量雖然是為了硬件、軟件、編程語(yǔ)言服務(wù),但是它并不是因?yàn)橛布④浖⒕幊陶Z(yǔ)言而引入。

常量區(qū)分為不同的類型,如25、0、-8為整形常量,6.8、-7.89為實(shí)型常量,‘a(chǎn)’‘b’為字符常量。常量一般從其字面形式即可判斷。這種常量稱為字面常量或直接常量。

3,變量來(lái)源于數(shù)學(xué),是計(jì)算機(jī)語(yǔ)言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過(guò)變量名訪問(wèn)。在指令式語(yǔ)言中,變量通常是可變的;但在純函數(shù)式語(yǔ)言(如

Haskell)中,變量可能是不可變(immutable)的。在一些語(yǔ)言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲(chǔ)空間的抽象(如在Java和

Visual

Basic中);但另外一些語(yǔ)言可能使用其它概念(如C的對(duì)象)來(lái)指稱這種抽象,而不嚴(yán)格地定義“變量”的準(zhǔn)確外延。

網(wǎng)頁(yè)名稱:go語(yǔ)言字面量和變量 go語(yǔ)言的數(shù)據(jù)類型
本文鏈接:http://chinadenli.net/article44/hgdsee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃用戶體驗(yàn)定制開(kāi)發(fā)營(yíng)銷型網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司