中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang 數組切片和字典

發布時間:2020-03-01 19:46:41 來源:網絡 閱讀:621 作者:欺世 欄目:開發技術

golang語言的數組 切片和字典

package main
import (
    "fmt"
)

func main(){
    //定長為數組 不定長為切片   
    //數組 var a[10] int
    //切片 var a[] int

    var a[10] int //定義一個數字長度為10,存儲int類型
    a[0] = 10   // 存儲
    a[1] = 20
    a[2] = 30
    a[3] = 40
    fmt.Println(a[0],a[1],a[2],a[3])  //通過序列打印
    fmt.Println(a)                    //打印整個數組,因為定義長度為10,而我們只存了4個,所有后面的部分將以零值填充。
    // 運行結果

    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)
    
    //數組遍歷
    for i,value := range num{  //索引和值
        fmt.Println(value,i)
    }
    
    //數組定義時可不定義切片大小
    sliceOne := []int{1,2,3,4,5}
    fmt.Println(sliceOne[0],sliceOne[1],sliceOne[2])
    
    //通過開始索引和結束索引創建一個新的切片
    sliceTwo := sliceOne[1:3]  //返回sliceOne中索引1到索引3,但不包含3
    fmt.Println(sliceTwo)  //運行結果:[2 3]
    
    //可省略開始索引,省略表示從索引0開始
    fmt.Println(sliceOne[:3]) //返回索引0-索引3,不包含3
    
    //可省略結束索引,省略表示直到最后一個
    fmt.Println(sliceOne[1:]) //打印索引1到最后,全部被打印出來 運行結果:[2 3 4 5]

    //同事省略開始和結束表示復制全部切片
    fmt.Println(sliceOne[:])
    
    //使用make初始化并設定長度與容量
    sliceThree := make([]int,5,10)//表示初始化一個切片,長度為5,最大容量為10,即在內存中申請了能放置10個長度的空間,這樣在有新元素插入的時候就不用再動態分配空間提高效率。
    fmt.Println(sliceThree) //運行結果:[0 0 0 0 0]
    
    //使用len 和cap 查看切片的長度和容量
    fmt.Println(len(sliceThree)) 
    fmt.Println(cap(sliceThree))//運行結果:5 10
    
    //使用append來追加元素
    sliceThree = append(sliceThree,2,3,4)
    fmt.Println(sliceThree) //運行結果:[0 0 0 0 0 1 2 3 4]
    //多維數組
    var a [2][3]int = [...][3]int{{1,2,3},{4,5,6}}
    
    // 注意:多維數組只有第一層可使用[...]里面的都不可以
    
    //切片合并
    var a = []int{1,2,3}
    var b = []int{4,5,6}
    a = append(a,b...)
 
     // 切片容量的擴展
     * 每次只追加一個元素,每一次都是上一次的2倍
     * 追加的超過原來容量的1倍,就等于原來的容量+擴容元素個數的最接近的偶數 
     * 如果切片的容量大于了1024,后續就每次擴容0.25倍 ?
    //排序
    排序操作主要都在sort包中,導入就可以使用了。
    import sort
    sort.Ints #對整數進行排序
    sort.Strings #對字符串進行排序
    sort.Float64s #對浮點數排序
 
    //查找
    sort.SearchInts(a []int, b int) 從數組a中查找B,查找時會先進行排序然后在查找,返回下標 index
    sort.SearchFloats(a []float64, b float64)
    sort.SearchStrings(a p[]string,b string)
    
    
    // 字典map
    // 使用make來創建map 
    //聲明時不會分配內存的,需要用make初始化才能分配內存進行操作
    m := make(map[string]int) //定義建值為字符串,值為整型
    m["first"] = 1
    fmt.Println(m["first"]) //運行結果:1
    m["first"] = 2
    fmt.Println(m["first"]) //運行結果:2    
    //使用len獲取map長度
    fmt.Println(len(m)) //運行結果:1
    
    //檢查map中是否包含某個建值
    v,ok :=m["third"] //如果包含建值third那么,v等于third對應的值,ok為true,否則v為零值,ok為false
    fmt.Print(v,ok) //運行結果:0 false
    
    //delete刪除map中的建值對
    delete(m,"first")
    fmt.Println(m) 
     
    //創建的時候初始化
    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,
        }        
    }    
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎右旗| 石河子市| 木兰县| 二连浩特市| 峨边| 白朗县| 卓尼县| 衡山县| 霍山县| 嵊泗县| 甘孜| 司法| 左权县| 蒙城县| 延津县| 南郑县| 土默特右旗| 瑞丽市| 博客| 遵化市| 花莲市| 囊谦县| 南澳县| 错那县| 民丰县| 和田市| 乐安县| 四会市| 博野县| 阆中市| 循化| 家居| 开平市| 忻州市| 荆州市| 镇坪县| 冀州市| 将乐县| 永川市| 甘洛县| 宁蒗|