1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package main
import "fmt"
func testSlice(slice []int) {
// 修改切片的值
slice[0] = 100
}
func main() {
// 定义一个切片类型,长度为0,容量为4
var slice = make([]int, 0, 4)
//向切片中添加1个元素 (不超过容量)
slice1 := append(slice,1)
fmt.Printf("变量slice1 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice1,len(slice1),cap(slice1),&slice1 )
// 向切片中添加多个元素(不超过容量)
slice2 := append(slice,3,4,5)
fmt.Printf("变量slice2 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice2,len(slice2),cap(slice2),&slice2 )
// 向切片中添加一个切片(超过容量)
newSlice := []int{1,2,3,4,5,6,7}
slice3 := append(slice,newSlice[:]...)
fmt.Printf("变量slice3 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice3,len(slice3),cap(slice3),&slice3 )
// 调用函数修改
testSlice(slice1)
fmt.Printf("调用函数后-变量slice1 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice1,len(slice1),cap(slice1),&slice1 )
fmt.Printf("调用函数后-变量slice2 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice2,len(slice2),cap(slice2),&slice2 )
fmt.Printf("调用函数后-变量slice3 --- 值: %v 长度(len):%d 容量(cap): %d 地址: %p \n",
slice3,len(slice3),cap(slice3),&slice3 )
}
/**输出
变量slice1 --- 值: [1] 长度(len):1 容量(cap): 4 地址: 0xc00000c080
变量slice2 --- 值: [3 4 5] 长度(len):3 容量(cap): 4 地址: 0xc00000c0c0
变量slice3 --- 值: [1 2 3 4 5 6 7] 长度(len):7 容量(cap): 8 地址: 0xc00000c100
调用函数后-变量slice1 --- 值: [100] 长度(len):1 容量(cap): 4 地址: 0xc00000c080
调用函数后-变量slice2 --- 值: [100 4 5] 长度(len):3 容量(cap): 4 地址: 0xc00000c0c0
调用函数后-变量slice3 --- 值: [1 2 3 4 5 6 7] 长度(len):7 容量(cap): 8 地址: 0xc00000c100
*/
|