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:切片声明与初始化 ===")
// 创建一个长度为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)