Добавление элемента в срез
Урок 3 из 21 курса Срезы и карты в Golang на Coddy.
В прошлых уроках мы обсуждали, что разница между срезом и массивом заключается в их размере, что становится очевидным при проверке длины.
Например, если мы определим срез следующим образом:
nums := []int{23, 5, 6}Наш срез содержит три элемента, и проверка длины с помощью функции <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"}
// Выведите длину
// Добавьте элемент в срез
// Выведите срез и обновленную длину
}Все уроки раздела Срезы и карты в Golang
1Введение
Введение2Срезы
Срезы и массивыДобавление элемента в срезСлайсингСпособы создания срезовРеслайсингЕмкость срезаМаксимальная емкостьИтерация по срезуПовторение: Задача №1