Golang的數組

Golang數組

package main
import "fmt"

func main()  {
    // 定義一個長度爲10,元素類型爲string的值
    li2 := [10]string{}
    //循環數組
    for i ,v := range li2{
        fmt.Printf("索引:%d,元素:%s \n",i,v)
    }

    // 給數組中某個元素賦值
    li2[1] = "miao"

    //調用search
    search(li2)
    fmt.Println(li2)
}

// 定義一個方法,傳入的參數是數組,並在數組中修改索引爲2的元素
func search(array [10]string)  {
    array[2] = "123"
    fmt.Println(array)
}

數組的切片:golang

package main

import "fmt"

func main()  {

    /*
    //定義一個數組
    var myArray[5]int = [5]int{1,2,3,4,5}

    //基於數組建立一個數組切片
    var mySile[]int = myArray[:3]

    //輸出MyArray中全部的元素
    fmt.Print("MyArray:")
    for _,v := range myArray{
        fmt.Print(v," ")
    }

    fmt.Print("\nMySile:")
    for _,v := range mySile{
        fmt.Print(v," ")
    }
    // Go語言支持Myarray[first:last]進行切片生成數組
    fmt.Print("\nMyArray[2:4]:")
    for _,v := range myArray[2:4]{
        fmt.Print(v)
    }
    */
    // 數組切片的其餘方法
    myArray := make([]int,5,10) //make第二個參數是數組的長度,第三個參數是數組的總長度
    mysile := []int{1,2,3}
    myArray = append(myArray,mysile[2]) // 使用append向數組myArray添加三個參數,參數也能夠是一個切片
    myArray = append(myArray,1,2,3)
    fmt.Println(myArray)
    //mySile := []int{6,7,8}

    // cap() len()
    // cap()函數返回的是數組切片分配的空間大小,len()函數返回的是數組切片中當前所存儲的元素個數
    fmt.Printf("map(myArray):%d \n",cap(myArray))
    fmt.Printf("len(myArray):%d",len(myArray))
}

基於數組切片建立數組切片與 copy的使用數組

myArray := make([]int, 10, 20)

    // 切片1
    mySile1 := myArray[2:8]
    fmt.Println(mySile1)

    //基於切片1建立數組切片

    mySile2 := mySile1[2:4]
    fmt.Println(mySile2)

    /*
    雖然mySile1只包含5個元素。只要這個選擇的範圍不超
    過myArray存儲能力(即cap()返回的值),那麼這個建立程序就是合法的。mySile2中超出
    mySile1元素的部分都會填上0。
     */

     ///////////////////// 內容複製 /////////////////
     slice1 := []int{1,2,3,4,5}
     slice2 := []int{5,4,3}
     fmt.Println(slice1,slice2,"\n")
     copy(slice2,slice1) // 只會複製slice1的前3個元素到slice2中
     copy(slice1,slice2) // 只會複製slice2的3個元素到slice1的前3個位置
     fmt.Println(slice1,slice2)
相關文章
相關標籤/搜索