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