首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
// 切片创建
|
||||
s1 := []int{1, 2, 3} // 直接初始化
|
||||
s2 := make([]int, 3, 5) // make创建,长度3,容量5
|
||||
s3 := make([]int, 3) // 容量默认等于长度
|
||||
|
||||
fmt.Printf("s1: %v, len=%d, cap=%d\n", s1, len(s1), cap(s1)) // [1 2 3] 3 3
|
||||
fmt.Printf("s2: %v, len=%d, cap=%d\n", s2, len(s2), cap(s2)) // [0 0 0] 3 5
|
||||
fmt.Printf("s3: %v, len=%d, cap=%d\n", s3, len(s3), cap(s3)) // [0 0 0] 3 3
|
||||
|
||||
// 切片操作
|
||||
s4 := s1[1:3] // 切片表达式,从索引1到3(不包含3)
|
||||
fmt.Println("s4:", s4) // [2 3]
|
||||
|
||||
// 修改切片元素(影响底层数组)
|
||||
s4[0] = 20
|
||||
fmt.Println("修改后s1:", s1) // [1 20 3]
|
||||
fmt.Println("修改后s4:", s4) // [20 3]
|
||||
|
||||
// 切片追加元素
|
||||
s2 = append(s2, 400) // len=4 == cap=5 → 不扩容
|
||||
fmt.Printf("添加400后s2: %v, len=%d, cap=%d\n", s2, len(s2), cap(s2)) // [0 0 0 400] 4 5
|
||||
s2 = append(s2, 500) // len=5 == cap=5 → 不扩容
|
||||
fmt.Printf("添加500后s2: %v, len=%d, cap=%d\n", s2, len(s2), cap(s2)) // [0 0 0 400 500] 5 5
|
||||
s2 = append(s2, 600) // len=6 > cap=5 → 扩容(容量变为10)
|
||||
fmt.Printf("添加600后s2: %v, len=%d, cap=%d\n", s2, len(s2), cap(s2)) // [0 0 0 400 500 600] 6 10
|
||||
|
||||
// 复制切片
|
||||
dst := make([]int, 2)
|
||||
src := []int{10, 20, 30}
|
||||
copied := copy(dst, src) // 复制2个元素(取len(dst)和len(src)的最小值)
|
||||
fmt.Printf("复制后dst: %v, 复制数量: %d\n", dst, copied) // [10 20] 2
|
||||
}
|
||||
Reference in New Issue
Block a user