##切片
package main
import (
"fmt"
"math/rand"
"time"
)func main()
arr1 := int
arr2 := make(int,6,8)
arr3 := make(int,6)
fmt.printf("長度len:%d, 容量cap:%d \n",len(arr),cap(arr)) //6 6
fmt.printf("長度len:%d, 容量cap:%d \n",len(arr1),cap(arr1)) //6 6
fmt.printf("長度len:%d, 容量cap:%d \n",len(arr2),cap(arr2)) //6 8
fmt.printf("長度len:%d, 容量cap:%d \n",len(arr3),cap(arr3)) //6 6
//切片的擷取
//下標 [low:high:max] [low,high) len=high-low cap=max-low
s := arr[:]
fmt.printf("%v len:%d cap:%d \n",s,len(s),cap(s)) //[0 1 2 3 4 5] len:6 cap:6
s = arr[1:3:6]
fmt.printf("%v len:%d cap:%d \n",s,len(s),cap(s)) //[1 2] len:2 cap:5
s = arr[:5]
fmt.printf("%v len:%d cap:%d \n",s,len(s),cap(s)) //[0 1 2 3 4] len:5 cap:6
s = arr[1:]
fmt.printf("%v len:%d cap:%d \n",s,len(s),cap(s)) //[1 2 3 4 5] len:5 cap:5
//切片是指向底層"陣列"的指標
fmt.println(arr) //[0 1 2 3 4 5]
s1 := arr[1:5:6]
s1[2] = 333
fmt.println(arr) //[0 1 2 333 4 5]
//追加
var slice int
fmt.println(slice)
//copy
src := int
dest := int
copy(dest,src)
fmt.println(dest) //[1 1 2 2 2]
//切片作為函式引數是引用傳遞
ss := int
initdata(ss)
bubblesort(ss)
fmt.println(ss)
}func initdata(s int)
}func bubblesort(s int)
} }}
Go 復合資料型別
3 map 4 結構體 5 json 文字和html模板 關於函式入參 當呼叫乙個函式的時候,函式的每個呼叫引數將會被賦值給函式內部的引數變數,所以函式引數變數接收的是乙個複製的副本,並不是原始呼叫的變數。因為函式引數傳遞的機制導致傳遞大的陣列型別將是低效的,並且對陣列引數的任何的修改都是發生在複製...
go語言資料型別之切片slice
初識 slice 切片 代表變長的序列,序列中每個元素都有相同的型別。乙個slice型別一般寫作t,其中t代表slice中元素的型別 slice的語法和陣列很像,只是沒有固定長度而已,slice在底層引用了乙個陣列物件。slice的長度對應slice中元素的數目 長度不能超過容量,容量一般是從sli...
復合資料型別
復合資料型別 作用 封裝資料 多種不同型別資料存放在一起 應存放在全域性,在訪問結構體中的變數時,應用stu.id stu.name 初始化的方式 在對陣列進行初始化時 strcpy stu.name,zhangsan 在對指標進行初始化時 char name 對name進行初始化 stu.name...