Menu
CoddyTech

向切片添加元素

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> 行不通)。

challenge icon

挑战

简单

编写一个程序,从用户那里获取 3 个输入,并将它们添加到给定代码中定义的名为 <strong>coddy</strong> 的切片中。按以下步骤操作:

  1. 添加元素前,打印切片的长度。
  2. 向切片中添加元素。
  3. 添加元素后,分别在不同行打印切片和更新后的长度。

亲手试试

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 在线编译器