fmt.Println покажет квадратные скобки с девятью пробелами: срез содержит десять пустых строк, которые печатаются без кавычек.
Какой вывод получит программа при печати строкового среза из 10 элементов
fmt.Println покажет квадратные скобки с девятью пробелами: срез содержит десять пустых строк, которые печатаются без кавычек.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какое значение будет отображено, когда в Go‑программе создаётся срез строк из десяти элементов и выводится при помощи fmt.Println.
package main
import "fmt"
func main() {
s := make([]string, 10)
fmt.Println(s)
}
Ответ
fmt.Println покажет квадратные скобки с девятью пробелами: срез содержит десять пустых строк, которые печатаются без кавычек.
make([]string, 10) задаёт длину 10 и заполняет элементы нулевыми значениями string, то есть "". Пробелы между элементами вставляет fmt.
Для наглядности используйте fmt.Printf("%q\n", s): тогда будут видны десять пустых строк в кавычках. Это отличается от make([]string, 0, 10), где длина нулевая и обычный вывод равен [], несмотря на такую же зарезервированную вместимость.