Finish: 02-slices - 切片操作

This commit is contained in:
2026-03-19 10:47:43 +08:00
parent 6ccc22ec9f
commit a6cba26de2
+19 -19
View File
@@ -6,10 +6,10 @@ func exercise1() []int {
fmt.Println("=== 练习1:切片声明与初始化 ===") fmt.Println("=== 练习1:切片声明与初始化 ===")
// 创建一个长度为3的int切片,初始值为[1, 2, 3] // 创建一个长度为3的int切片,初始值为[1, 2, 3]
s := make([]int, ____) s := make([]int, 3)
s[0], s[1], s[2] = ____, ____, ____ s[0], s[1], s[2] = 1, 2, 3
return ____ return s
} }
func exercise2() int { func exercise2() int {
@@ -17,10 +17,10 @@ func exercise2() int {
// 向切片中添加元素并返回新长度 // 向切片中添加元素并返回新长度
fruits := []string{"苹果", "香蕉"} fruits := []string{"苹果", "香蕉"}
fruits = append(fruits, ____) fruits = append(fruits, "梨子")
fruits = append(fruits, ____, ____) fruits = append(fruits, "蓝莓", "草莓")
return ____(fruits) return len(fruits)
} }
func exercise3() []int { func exercise3() []int {
@@ -29,14 +29,14 @@ func exercise3() []int {
// 从切片中提取子切片 // 从切片中提取子切片
numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
// 提取索引2到6(不包含6) // 提取索引2到5(不包含5)
sub1 := numbers[____:____] sub1 := numbers[2:5]
// 提取前5个元素 // 提取前5个元素
sub2 := numbers[:____] sub2 := numbers[:5]
// 提取从第5个开始到末尾 // 提取从第5个开始到末尾
sub3 := numbers[____:] sub3 := numbers[4:]
fmt.Printf("子切片1: %v\n", sub1) fmt.Printf("子切片1: %v\n", sub1)
fmt.Printf("子切片2: %v\n", sub2) fmt.Printf("子切片2: %v\n", sub2)
@@ -50,13 +50,13 @@ func exercise4() int {
// 修改原始切片,观察使用copy复制的切片是否受影响 // 修改原始切片,观察使用copy复制的切片是否受影响
s1 := []int{1, 2, 3} s1 := []int{1, 2, 3}
s2 := make([]int, ____(s1)) s2 := make([]int, len(s1))
copy(____, s1) copy(s2, s1)
s1[0] = 99 s1[0] = 99
return ____ return s2[0]
} }
func exercise5() []int { func exercise5() []int {
@@ -65,19 +65,19 @@ func exercise5() []int {
// 创建一个新切片,包含原切片中所有偶数 // 创建一个新切片,包含原切片中所有偶数
numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var evens ____ var evens []int
for _, num := range ____ { for _, num := range numbers {
if num%2 == ____ { if num%2 == 0 {
evens = append(____, num) evens = append(evens, num)
} }
} }
return ____ return evens
} }
func main() { func main() {
fmt.Println("=== 切片 练习 ===\n") fmt.Println("=== 切片 练习 ===")
result1 := exercise1() result1 := exercise1()
fmt.Printf("练习1结果: %v\n", result1) fmt.Printf("练习1结果: %v\n", result1)