go的數(shù)組和切片

什么是數(shù)組?

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、水城ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的水城網(wǎng)站制作公司

數(shù)組

數(shù)組是一個由固定長度的特定類型元素組成的序列,一個數(shù)組可以由零個或多個元素組成

數(shù)組定義的方法?

方式一

package main
import "fmt"

func arraytest()  {
    var x [3] int
    fmt.Println(x) 
}
// 輸出 [0 0 0]
func main()  {
    arraytest()
    }

使用快速聲明數(shù)組

x3 :=[3] int {112,78}
fmt.Println(x3) 
輸出 [112 78 0]

// 數(shù)組值的獲取

var x2[3] int
    x2[0] = 1 //第一個元素
    x2[1] = 11
    x2[2] = 22 
    fmt.Println(x2) 
輸出 [1 11 22]

// 使用for 循環(huán)獲取數(shù)組的數(shù)據(jù)

 x6 :=[...] int {3,5,6,82,34}
    for i :=0; i< len(x6);i++{
        fmt.Println(i,x6[i])
    }
    // 輸出   如下 0 表示索引號, 3表示 對應(yīng)的具體值
 0 3
 1 5
 2 6
 3 82
 4 34

// go 語言中提供使用range 的方式獲取

for i,v := range x6{
fmt.Printf("%d of x6 is %d\n",i,v)
}
// 輸出 
0 3
1 5
2 6
3 82
4 34

// 只訪問元素

for _,v1 :=range x6 {
    fmt.Printf("x6 array value is %d\n",v1)
}
// 輸出

0 of x6 is 3
1 of x6 is 5
2 of x6 is 6
3 of x6 is 82
4 of x6 is 34

切片

什么是切片(slice)?

切片(slice)是 Golang 中一種比較特殊的數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)更便于使用和管理數(shù)據(jù)集合

// 切片的定義

package main
import "fmt"

func slicetest() {
a1 :=[4] int {1,3,7,22}
fmt.Println(a1)

// 輸出

[1 3 7 22]
var b1 []int = a1[1:4]
fmt.Println(b1,len(b1)) 

// 輸出

[3 7 22] 3

}

func main() {
slicetest()
}

// 使用make 聲明切片
make 初始化函數(shù)切片的時候,如果不指明其容量,那么他就會和長度一致,如果在初始化的時候指明了其容量

 s1 :=make([]int, 5) 
    fmt.Printf("The length of s1: %d\n",len(s1)) # 長度
    fmt.Printf("The capacity of; s1: %d\n",cap(s1)) # cap 容量
    fmt.Printf("The value of s1:%d\n",s1)
    // 輸出 

    The length of s1: 5
The capacity of; s1: 5
The value of s1:[0 0 0 0 0]

    s12 :=make([]int, 5,8) # 指明長度為 5, 容量為8
    fmt.Printf("The length of s12: %d\n",len(s12))
    fmt.Printf("The capacity of; s12: %d\n",cap(s12))
    fmt.Printf("The value of s12:%d\n",s12)
    // 輸出

    The length of s12: 5
The capacity of; s12: 8
The value of s12:[0 0 0 0 0]

// 
s3 := []int{1, 2, 3, 4, 5, 6, 7, 8}
s4 := s3[3:6]
fmt.Printf("The length of s4: %d\n", len(s4))
fmt.Printf("The capacity of s4: %d\n", cap(s4))
fmt.Printf("The value of s4: %d\n", s4)

// 輸出

The length of s4: 3  # 長度為3 
The capacity of s4: 5 # 容量為5  
The value of s4: [4 5 6]  

// 切片與數(shù)組的關(guān)系

切片的容量可以看成是底層數(shù)組元素的個數(shù)
s4 是通過s3 切片獲得來的,所以s3 的底層數(shù)組就是s4 的底層數(shù)組,切片是無法向左拓展的,所以s4 無法看到s3 最左邊的三個元素,所以s4 的容量為5

// 切片的獲取

before_slice :=[] int {1,4,5,23,13,313,63,23}
after_slice := before_slice[3:7]

fmt.Println("array before change",before_slice)

// 使用for range 遍歷

for i := range after_slice{
    after_slice[i]++
}
fmt.Println("after cahnge",before_slice)

// 輸出

array before change [1 4 5 23 13 313 63 23]
after cahnge [1 4 5 24 14 314 64 23]

數(shù)組和切片的區(qū)別

容量是否可伸縮 ? 數(shù)組容量不可以伸縮,切片可以

是否可以進(jìn)行比較? // 相同長度的數(shù)組可以進(jìn)行比較

網(wǎng)站名稱:go的數(shù)組和切片
本文來源:http://muchs.cn/article48/piepep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)面包屑導(dǎo)航、小程序開發(fā)、外貿(mào)建站域名注冊、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(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è)