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)