golang語(yǔ)言的數(shù)組 切片和字典

創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,先為臺(tái)山等服務(wù)建站,臺(tái)山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為臺(tái)山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。package main
import (
"fmt"
)
func main(){
//定長(zhǎng)為數(shù)組 不定長(zhǎng)為切片
//數(shù)組 var a[10] int
//切片 var a[] int
var a[10] int //定義一個(gè)數(shù)字長(zhǎng)度為10,存儲(chǔ)int類型
a[0] = 10 // 存儲(chǔ)
a[1] = 20
a[2] = 30
a[3] = 40
fmt.Println(a[0],a[1],a[2],a[3]) //通過(guò)序列打印
fmt.Println(a) //打印整個(gè)數(shù)組,因?yàn)槎x長(zhǎng)度為10,而我們只存了4個(gè),所有后面的部分將以零值填充。
// 運(yùn)行結(jié)果
10 20 30 40
[10 20 30 40 0 0 0 0 0 0]
//初始化并賦值
num := [5]int{1,2,3,4,5} //初始化并賦值
fmt.Println(num)
//數(shù)組遍歷
for i,value := range num{ //索引和值
fmt.Println(value,i)
}
//數(shù)組定義時(shí)可不定義切片大小
sliceOne := []int{1,2,3,4,5}
fmt.Println(sliceOne[0],sliceOne[1],sliceOne[2])
//通過(guò)開(kāi)始索引和結(jié)束索引創(chuàng)建一個(gè)新的切片
sliceTwo := sliceOne[1:3] //返回sliceOne中索引1到索引3,但不包含3
fmt.Println(sliceTwo) //運(yùn)行結(jié)果:[2 3]
//可省略開(kāi)始索引,省略表示從索引0開(kāi)始
fmt.Println(sliceOne[:3]) //返回索引0-索引3,不包含3
//可省略結(jié)束索引,省略表示直到最后一個(gè)
fmt.Println(sliceOne[1:]) //打印索引1到最后,全部被打印出來(lái) 運(yùn)行結(jié)果:[2 3 4 5]
//同事省略開(kāi)始和結(jié)束表示復(fù)制全部切片
fmt.Println(sliceOne[:])
//使用make初始化并設(shè)定長(zhǎng)度與容量
sliceThree := make([]int,5,10)//表示初始化一個(gè)切片,長(zhǎng)度為5,大容量為10,即在內(nèi)存中申請(qǐng)了能放置10個(gè)長(zhǎng)度的空間,這樣在有新元素插入的時(shí)候就不用再動(dòng)態(tài)分配空間提高效率。
fmt.Println(sliceThree) //運(yùn)行結(jié)果:[0 0 0 0 0]
//使用len 和cap 查看切片的長(zhǎng)度和容量
fmt.Println(len(sliceThree))
fmt.Println(cap(sliceThree))//運(yùn)行結(jié)果:5 10
//使用append來(lái)追加元素
sliceThree = append(sliceThree,2,3,4)
fmt.Println(sliceThree) //運(yùn)行結(jié)果:[0 0 0 0 0 1 2 3 4]
//多維數(shù)組
var a [2][3]int = [...][3]int{{1,2,3},{4,5,6}}
// 注意:多維數(shù)組只有第一層可使用[...]里面的都不可以
//切片合并
var a = []int{1,2,3}
var b = []int{4,5,6}
a = append(a,b...)
// 切片容量的擴(kuò)展
* 每次只追加一個(gè)元素,每一次都是上一次的2倍
* 追加的超過(guò)原來(lái)容量的1倍,就等于原來(lái)的容量+擴(kuò)容元素個(gè)數(shù)的最接近的偶數(shù)
* 如果切片的容量大于了1024,后續(xù)就每次擴(kuò)容0.25倍 ?
//排序
排序操作主要都在sort包中,導(dǎo)入就可以使用了。
import sort
sort.Ints #對(duì)整數(shù)進(jìn)行排序
sort.Strings #對(duì)字符串進(jìn)行排序
sort.Float64s #對(duì)浮點(diǎn)數(shù)排序
//查找
sort.SearchInts(a []int, b int) 從數(shù)組a中查找B,查找時(shí)會(huì)先進(jìn)行排序然后在查找,返回下標(biāo) index
sort.SearchFloats(a []float64, b float64)
sort.SearchStrings(a p[]string,b string)
// 字典map
// 使用make來(lái)創(chuàng)建map
//聲明時(shí)不會(huì)分配內(nèi)存的,需要用make初始化才能分配內(nèi)存進(jìn)行操作
m := make(map[string]int) //定義建值為字符串,值為整型
m["first"] = 1
fmt.Println(m["first"]) //運(yùn)行結(jié)果:1
m["first"] = 2
fmt.Println(m["first"]) //運(yùn)行結(jié)果:2
//使用len獲取map長(zhǎng)度
fmt.Println(len(m)) //運(yùn)行結(jié)果:1
//檢查map中是否包含某個(gè)建值
v,ok :=m["third"] //如果包含建值third那么,v等于third對(duì)應(yīng)的值,ok為true,否則v為零值,ok為false
fmt.Print(v,ok) //運(yùn)行結(jié)果:0 false
//delete刪除map中的建值對(duì)
delete(m,"first")
fmt.Println(m)
//創(chuàng)建的時(shí)候初始化
var mp = map[string]int{
"first" : 1,
"second" : 2,
}
//字典嵌套
outer := map[string]map[string]int{
"inner1":map[string]int{
"first":1,
"second":2,
}
"inner2":map[string]int{
"first":3,
"second":4,
}
}
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前標(biāo)題:golang數(shù)組切片和字典-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:
http://weahome.cn/article/hijjc.html