向切片添加元素
Coddy Go 中的切片和映射 课程的第 3 课,共 21 课。
在前几课中,我们讨论过,切片和数组的区别在于它们的大小,这一点在检查长度时就能看出来。
例如,如果我们这样定义一个切片:
nums := []int{23, 5, 6}我们的切片有 3 个元素,使用 <strong>len()</strong> 函数检查长度会得到 3:
nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3如果我们向切片中添加元素并检查大小,就会得到新的大小:
nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5相反,数组的大小是固定的。例如:
nums := [4]int{23}
fmt.Println(len(nums)) // 4即使元素数量少于 4,长度也保持不变。
使用 <strong>append</strong> 可以向切片中添加元素:
books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)运行后会得到:
[Python Rust Golang]在 Golang 中,切片自带一些函数,<strong>append()</strong> 就是其中之一,它可以让我们向现有切片中添加新元素。
请注意,由于切片的大小是动态的,我们不能使用索引来添加元素(
<strong>books[2] = "Golang"</strong>行不通)。
挑战
简单编写一个程序,从用户那里获取 3 个输入,并将它们添加到给定代码中定义的名为 <strong>coddy</strong> 的切片中。按以下步骤操作:
- 添加元素前,打印切片的长度。
- 向切片中添加元素。
- 添加元素后,分别在不同行打印切片和更新后的长度。
亲手试试
package main
import "fmt"
func main() {
// 获取用户输入,不要修改这部分!
var first, second, third string
fmt.Scan(&first)
fmt.Scan(&second)
fmt.Scan(&third)
// 定义切片
coddy := []string {"SQL","Rust","C#","Golang"}
// 输出长度
// 向切片添加元素
// 输出切片和更新后的长度
}Go 中的切片和映射中的所有课
自己练习: Go 在线编译器