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

Go語言常用的數(shù)據(jù)結(jié)構(gòu)有哪些

本篇文章為大家展示了Go語言常用的數(shù)據(jù)結(jié)構(gòu)有哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

海林網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),海林網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為海林上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的海林做網(wǎng)站的公司定做!

學(xué)習(xí)目標(biāo)

掌握常見數(shù)據(jù)類型的使用


布爾類型
var v1 bool //默認(rèn)值為false
v1 = true 
v2 := (1 == 2) // v2也會被推導(dǎo)為bool類型

數(shù)值類型

整型:

int8、byte、int16、int、uint、uintptr等。

類型長度(字節(jié))取值范圍
int81-128 ~ 127
uint8(即byte)10 ~ 255
int162-32 768 ~ 32 767
uint1620 ~ 65 535
int324-2 147 483 648 ~ 2 147 483 647
uint3240 ~ 4 294 967 295
int648-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
uint6480 ~ 18 446 744 073 709 551 615
int平臺相關(guān)平臺相關(guān)
uint平臺相關(guān)平臺相關(guān)
uintptr同指針在32位平臺下為4字節(jié),64位平臺下為8字節(jié)

int和int32在Go語言里被認(rèn)為是兩種不同的類型,編譯器也不會幫你自動 做類型轉(zhuǎn)換

支持的位運算符:

運算含義樣例
x << y左移124 << 2 // 結(jié)果為496
x >> y右移124 >> 2 // 結(jié)果為31
x ^ y異或124 ^ 2 // 結(jié)果為126
x & y124 & 2 // 結(jié)果為0
x|y124|2 // 結(jié)果為126
^x取反^2 // 結(jié)果為?3

浮點類型:

float32、float64。

不能直接用==來判斷兩個浮點數(shù)是否相等

可以這樣判斷浮點型的大小:

import "math" 
 
// p為用戶自定義的比較精度,比如0.00001 
func IsEqual(f1, f2, p float64) bool {   
    return math.Fdim(f1, f2) < p  
}

復(fù)數(shù)類型:

complex64、complex128。

復(fù)數(shù)實際上由兩個實數(shù)(在計算機中用浮點數(shù)表示)構(gòu)成,一個表示實部(real),一個表示 虛部(imag)。如果了解了數(shù)學(xué)上的復(fù)數(shù)是怎么回事,那么Go語言的復(fù)數(shù)就非常容易理解了。

  1. 復(fù)數(shù)表示

    復(fù)數(shù)表示的示例如下:

    var value1 complex64    // 由2個float32構(gòu)成的復(fù)數(shù)類型 
    value1 = 3.2 + 12i
    value2 := 3.2 + 12i     // value2是complex128類型 
    value3 := complex(3.2, 12)  // value3結(jié)果同 value2

  2. 實部與虛部

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

    go語言不支持隱式轉(zhuǎn)換(對比Java的隱式轉(zhuǎn)換)


**字符串:**string。

var str string  // 聲明一個字符串變量 ,默認(rèn)值為""
切片和數(shù)組

數(shù)組聲明:

//數(shù)組定義
var a[3]int //聲明并初始化默認(rèn)值為0
a[0] = 1 //給第一個數(shù)賦值為1
b := [3]int{1,2,3} //聲明同時初始化
c := [2][2]int{1, 2}, {3, 43} //多維數(shù)組初始化
d := [...]int{1,2,3,4,5}//自動匹配長度

數(shù)組遍歷:

	arr3 := [...]int{1, 3, 4, 5}

	for i := 0; i < len(arr3); i++ {
		t.Log(arr3[i])
	}
	
	//i 是索引,不使用索引用_代替
	for i, e := range arr3 {
		t.Log(e,i)
	}

數(shù)組的截取:

a[開始索引(包含),結(jié)束索引(不包含)]

a := [...]int{1, 2, 3, 4, 5} 
a[1:2] //結(jié)果: 2
a[1:3] //結(jié)果: 2,3
a[1:Len(a)] //結(jié)果: 2,3,4,5 
a[1:] //結(jié)果: 2,3,4,5 
a[:3] //結(jié)果: 1,2,3
切片

類似于Java中的集合List

切片聲明:

//切片定義
var s0 [] int //初始長度為0
s0 = append(s0,1)//填充數(shù)據(jù)

s := []int{}
s1 := []int{1,2,3} 

/*
 格式: type,len,cap
 其中l(wèi)en個元素會被初始化為默認(rèn)零值,未初始化元素不可以訪問,既,索引為0,1,2的值初始化為0可以訪問,3,4不可以
 訪問
 cap按2倍增長(類似于Java中l(wèi)ist長度的增長因子)
*/
s2 := make([]int,3,5)/

Go語言常用的數(shù)據(jù)結(jié)構(gòu)有哪些

map

map的聲明:

var 變量名 map[key類型] value類型

m := map[string]int{"one": 1, "two": 2, "three": 3}

m1 :=map[string]int{}
m1["one"]=1//向容器中存入數(shù)據(jù)

m2 :=make(map[string]int, 100 )//設(shè)置容量

//判斷值是否存在
if v, ok := m1["one"]; ok {
	//值存在
}

注意:

當(dāng)key不存在時:會輸出默認(rèn)值

當(dāng)key對應(yīng)的值不存在時:也會返回默認(rèn)值

map的遍歷:

	m1 := map[int]int{1: 1, 2: 4, 3: 9}
	//a是key b是value
	for a, b := range m1 {
		t.Log(a, b)
	}
	//k是key
	for  k := range m1  {
		t.Log(k)
	}

上述內(nèi)容就是Go語言常用的數(shù)據(jù)結(jié)構(gòu)有哪些,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:Go語言常用的數(shù)據(jù)結(jié)構(gòu)有哪些
本文路徑:http://chinadenli.net/article4/ppceoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化用戶體驗網(wǎng)站導(dǎo)航域名注冊全網(wǎng)營銷推廣企業(yè)網(wǎng)站制作

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)