Какой вывод будет у программы №58

slice1 содержит десять пустых строк, а slice2 не содержит элементов. У обоих capacity=10, но длины равны 10 и 0 соответственно.

Короткий ответ

Что ответить на собеседовании

slice1 содержит десять пустых строк, а slice2 не содержит элементов. У обоих capacity=10, но длины равны 10 и 0 соответственно.

Подробный разбор

Ответ с пояснениями

Условие

Какой результат выведет программа при её выполнении?

import "fmt"

func main() {
    slice1 := make([]string, 10)
    slice2 := make([]string, 0, 10)
    fmt.Println(slice1, slice2)
}

Ответ

slice1 содержит десять пустых строк, а slice2 не содержит элементов. У обоих capacity=10, но длины равны 10 и 0 соответственно.

fmt.Println покажет первый слайс как квадратные скобки с девятью пробелами между пустыми элементами, второй — как []. Это не десять nil: нулевое значение string — пустая строка. Для наглядности используйте формат %q: тогда первый слайс покажет десять "", а отдельно len/cap устранят двусмысленность вывода.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее