Finish: 02-slices - 切片操作
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user