Копирование срезов
Часть раздела Основы путешествия по GO на Coddy — урок 82 из 109.
Функция copy в Go позволяет копировать элементы из одного среза в другой.
Создайте исходный срез и целевой срез:
source := []int{1, 2, 3}
dest := make([]int, 2) // Целевой срез длиной 2
// Копирование из исходного среза в целевой
copied := copy(dest, source)
fmt.Println("Source:", source)
fmt.Println("Destination:", dest)
fmt.Println("Number of elements copied:", copied)Результат:
Source: [1 2 3]
Destination: [1 2]
Number of elements copied: 2Функция copy копирует ровно столько элементов, сколько поместится в целевой срез.
Задание
НовичокВ этом испытании вы попрактикуетесь в использовании функции copy для копирования элементов из одного среза в другой.
У вас есть два среза: source, содержащий названия фруктов, и destination, который является пустым срезом емкостью 3 элемента. Ваша задача — скопировать элементы из source в destination с помощью функции copy.
После копирования выведите содержимое среза destination.
Шпаргалка
Функция copy копирует элементы из одного слайса в другой:
source := []int{1, 2, 3}
dest := make([]int, 2) // Целевой слайс длиной 2
// Копирование из источника в целевой слайс
copied := copy(dest, source)
fmt.Println("Source:", source)
fmt.Println("Destination:", dest)
fmt.Println("Number of elements copied:", copied)Функция copy копирует ровно столько элементов, сколько может поместиться в целевой слайс, и возвращает количество скопированных элементов.
Попробуйте сами
package main
import "fmt"
func main() {
// Исходный слайс с названиями фруктов
source := []string{"apple", "banana", "cherry", "date"}
// Создаем целевой слайс емкостью 3 элемента
destination := make([]string, 3)
// TODO: Используйте функцию copy для копирования элементов из source в destination
// Выводим целевой слайс
fmt.Println("Destination slice:", destination)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений