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)