Menu
Coddy logo textTech

Добавление элемента в срез

Урок 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> не сработает).

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"}
    // Выведите длину
    
    // Добавьте элемент в срез
    
    // Выведите срез и обновленную длину

}

Все уроки раздела Срезы и карты в Golang