支持==和!=操作就可以做key,實(shí)際上只有function、map、slice三個(gè)kind不支持作為key,因?yàn)橹荒芎蚽il比較不能和另一個(gè)值比較。布爾、整型、浮點(diǎn)、復(fù)數(shù)、字符串、指針、channel等都可以做key。

創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鐵西,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
struct能不能做key要看每一個(gè)字段,如果所有字段都可以做key,那這個(gè)struct就可以。有一個(gè)字段不能做key,這個(gè)struct就不能做key。array也是,元素類型能做key,那這個(gè)array就可以。
例如:
type Foo map[struct {
B bool
I int
F float64
C complex128
S string
P *Foo
Ch chan Foo
}]bool
每一個(gè)字段都可以做key,F(xiàn)oo就可以做key。再如:
type Foo map[struct {
Fn func() Foo
M map[*Foo]int
S []Foo
}]bool
有一個(gè)字段不能做key、Foo就不允許做key,而這三個(gè)字段都不能。
字段是遞歸檢查的:
type Foo map[struct {
Sub struct {
M map[*Foo]bool
}
}]bool
Sub的M字段不能做key,Sub就不能做key,F(xiàn)oo也就不能做key。
總之想把一個(gè)數(shù)據(jù)結(jié)構(gòu)用于map的key,就不能包含function、map和slice。
Go語言作為出現(xiàn)比較晚的一門編程語言,在其原生支持高并發(fā)、云原生等領(lǐng)域的優(yōu)秀表現(xiàn),像目前比較流行的容器編排技術(shù)Kubernetes、容器技術(shù)Docker都是用Go語言寫的,像Java等其他面向?qū)ο蟮恼Z言,雖然也能做云原生相關(guān)的開發(fā),但是支持的程度遠(yuǎn)沒有Go語言高,憑借其語言特性和簡(jiǎn)單的編程方式,彌補(bǔ)了其他編程語言一定程度上的不足,一度成為一個(gè)熱門的編程語言。
最近在學(xué)習(xí)Go語言,我之前使用過C#、Java等面向?qū)ο缶幊痰恼Z言,發(fā)現(xiàn)其中有很多的編程方式和其他語言有區(qū)別的地方,好記性不如爛筆頭,總結(jié)一下,和其他語言做個(gè)對(duì)比。這里只總結(jié)差異的地方,具體的語法不做詳細(xì)的介紹。
種一棵樹最好的時(shí)間是十年前,其次是現(xiàn)在。
3)變量初始化時(shí)候可以和其他語言一樣直接在變量后面加等號(hào),等號(hào)后面為要初始化的值,也可以使用變量名:=變量值的簡(jiǎn)單方式
3)變量賦值 Go語言的變量賦值和多數(shù)語言一致,但是Go語言提供了多重賦值的功能,比如下面這個(gè)交換i、j變量的語句:
在不支持多重賦值的語言中,交換兩個(gè)變量的值需要引入一個(gè)中間變量:
4)匿名變量
在使用其他語言時(shí),有時(shí)候要獲取一個(gè)值,卻因?yàn)樵摵瘮?shù)返回多個(gè)值而不得不定義很多沒有的變量,Go語言可以借助多重返回值和匿名變量來避免這種寫法,使代碼看起來更優(yōu)雅。
假如GetName()函數(shù)返回3個(gè)值,分別是firstName,lastName和nickName
若指向獲得nickName,則函數(shù)調(diào)用可以這樣寫
這種寫法可以讓代碼更清晰,從而大幅降低溝通的復(fù)雜度和維護(hù)的難度。
1)基本常量
常量使用關(guān)鍵字const 定義,可以限定常量類型,但不是必須的,如果沒有定義常量的類型,是無類型常量
2)預(yù)定義常量
Go語言預(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語言中被認(rèn)為是兩種不同類型的類型
2)Go語言定義了兩個(gè)浮點(diǎn)型float32和float64,其中前者等價(jià)于C語言的float類型,后者等價(jià)于C語言的double類型
3)go語言支持復(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),就可以通過Go語言內(nèi)置函數(shù)real(z)獲得該復(fù)數(shù)的實(shí)部,也就是x,通過imag(z)獲得該復(fù)數(shù)的虛部,也就是y
4)數(shù)組(值類型,長(zhǎng)度在定義后無法再次修改,每次傳遞都將產(chǎn)生一個(gè)副本。)
5)數(shù)組切片(slice)
數(shù)組切片(slice)彌補(bǔ)了數(shù)組的不足,其數(shù)據(jù)結(jié)構(gòu)可以抽象為以下三個(gè)變量:
6)Map 在go語言中Map不需要引入任何庫,使用很方便
Go循環(huán)語句只支持for關(guān)鍵字,不支持while和do-while
goto語句的語義非常簡(jiǎn)單,就是跳轉(zhuǎn)到本函數(shù)內(nèi)的某個(gè)標(biāo)簽
今天就介紹到這里,以后我會(huì)在總結(jié)Go語言在其他方面比如并發(fā)編程、面向?qū)ο蟆⒕W(wǎng)絡(luò)編程等方面的不同及使用方法。希望對(duì)大家有所幫助。
Go中數(shù)值類型可細(xì)分為整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)三種,每種都具有不同的大小范圍和正負(fù)支持。
整型分為兩大類
Go提供了有符號(hào)和無符號(hào)的整數(shù)類型,同時(shí)提供四種大小不同的整數(shù)類型。
取值范圍
等價(jià)類型
特殊整型
int 和 uint 分別對(duì)應(yīng)特定CPU平臺(tái)的字長(zhǎng)(機(jī)器字大小),大小范圍在 32bit 或 64bit 之間變化,實(shí)際開發(fā)中由于編譯器和硬件不同而不同。
進(jìn)制轉(zhuǎn)換
轉(zhuǎn)換函數(shù)
使用注意
字節(jié)長(zhǎng)度
Golang提供了兩種精度的浮點(diǎn)數(shù)分別為 float32 和 float64 ,它們的算術(shù)規(guī)范由IEEE754浮點(diǎn)數(shù)國(guó)際標(biāo)準(zhǔn)定義,IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)被現(xiàn)代CPU支持。
float32 類型的浮點(diǎn)數(shù)可提供約6個(gè)十進(jìn)制數(shù)的精度, float64 類型的浮點(diǎn)數(shù)可提供約15個(gè)十進(jìn)制數(shù)的精度。通常會(huì)優(yōu)先選擇使用 float64 ,因?yàn)?float32 累計(jì)計(jì)算誤差會(huì)比較容易擴(kuò)散。
計(jì)算機(jī)中復(fù)數(shù)(complex)由兩個(gè)浮點(diǎn)數(shù)表示,一個(gè)表示實(shí)部(real)一個(gè)表示虛部(imag)。
Go語言中復(fù)數(shù)的值由三部分組成 RE + IMi ,分別是實(shí)數(shù)部分 RE 、虛數(shù)部分 IM 、虛數(shù)單位 i , RE 和 IM 均為 float 。
Go語言提供兩種類型的復(fù)數(shù),分別是 complex64 即32位實(shí)數(shù)和虛數(shù), complex128 即64位實(shí)數(shù)和虛數(shù), complex128 為復(fù)數(shù)的默認(rèn)類型。
復(fù)數(shù)聲明
z 表示復(fù)數(shù)的變量名, complex128 表示復(fù)數(shù)類型, complex() 內(nèi)置函數(shù)用于為復(fù)數(shù)賦值。 x 和 y 分別表示構(gòu)成該復(fù)數(shù)的兩個(gè) float64 類型的值, x 為實(shí)部, y 為虛部。
簡(jiǎn)寫形式
對(duì)于 z 值可通過內(nèi)置函數(shù) real(z) 獲取該復(fù)數(shù)的實(shí)部,使用 imag(z) 獲取虛部。
常量,就是在程序編譯階段就確定下來的值,而程序在運(yùn)行時(shí)則無法改變?cè)撝怠T贕o程序中,常量可以是數(shù)值類型(包括整型、浮點(diǎn)型和復(fù)數(shù)類型)、布爾類型、字符串類型等。
定義一個(gè)常量使用const關(guān)鍵字,語法格式如下:
const:定義常量關(guān)鍵字
constantName:常量名稱
type:常量類型
value:常量的值
實(shí)例
運(yùn)行結(jié)果
iota比較特殊,可以被認(rèn)為是一個(gè)可被編譯器修改的常量,它默認(rèn)開始值是0,每調(diào)用一次加1。遇到const關(guān)鍵字時(shí)被重置為0。
實(shí)例
運(yùn)行結(jié)果
使用_跳過某些值
運(yùn)行結(jié)果
運(yùn)行結(jié)果
復(fù)數(shù)是某些語言的名詞和代詞的語法形式,表示一個(gè)以上,并與相應(yīng)的動(dòng)詞語法形式呼應(yīng).
如英語中 teacher (單數(shù))--- teachers (復(fù)數(shù)),相應(yīng)的動(dòng)詞要用原形,如 go
go
[英][ɡ??][美][ɡo]
vi.進(jìn)行; 去; 說; 進(jìn)展;
vt.發(fā)出…聲音; 變得; 成為; 處于…狀態(tài);
n.(牌戲、下棋等中)輪到的順序; 精力; 干勁; (做某事的)嘗試;
第三人稱單數(shù):goes過去分詞:gone復(fù)數(shù):goes現(xiàn)在進(jìn)行時(shí):going過去式:went
短語詞組
all the go
1. (英,非正式,舊)非常流行,風(fēng)行一時(shí)
as (或 so) far as it goes
1. 考慮到它的局限性(在找理由表揚(yáng)某事物時(shí)說)
the book is a useful catalogue as far as it goes.
就這本書本身而言,它是個(gè)有用的目錄。
as —— go
1. 與一般的(或典型的)相比
as castles go it is small and old.
與一般城堡相比,它小而古老。
from the word go
1. (非正式)從一開始
get someone going
1. (英,非正式)惹怒;使性興奮
I want a girl who's sexy, but in a subtle way—that's what gets me going.
我需要一個(gè)性感女孩,不過要隱隱約約地性感的那一種性感——就是能讓我興奮的那種類型。
go figure!
1. (北美,非正式)[用來表示說話人認(rèn)為某事是令人吃驚的,難以置信的] 真不敢相信
go great guns
go halves
1. 平分
going!, gone!
1. (拍賣人宣布)競(jìng)價(jià)就要結(jié)束(或已結(jié)束)
go off on one
1. (英,非正式)惱怒;激動(dòng)
同義詞
vi.
1. 去;離去;移動(dòng);前進(jìn)
strayprogressdepartrunadvancecruisedisappearflytravelrambleproceedretreatfadeescapemoveleavepassvanish
2. 變成
growbecometointogetturnbe
3. 工作
operatefunction
4. 歸屬
havebelongplace
5. 指向
forheadaimpoint
6. 行動(dòng),活動(dòng)
actwork
其他釋義
actbelongheadproceedaimfunctionadvancetravelformovebouncebecomepassworkpointturnoperateleave
反義詞
vi.
1. 離去;移動(dòng)
stopstayarriveremaincome
其他釋義
comeremainenterstay
分享標(biāo)題:復(fù)數(shù)go語言,go的復(fù)數(shù)怎么讀
網(wǎng)站地址:http://chinadenli.net/article7/dsgsdij.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、做網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站排名、用戶體驗(yàn)、網(wǎng)站設(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í)需注明來源: 創(chuàng)新互聯(lián)
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)