slice1 содержит десять пустых строк, а slice2 не содержит элементов. У обоих capacity=10, но длины равны 10 и 0 соответственно.
Какой вывод будет у программы №58
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 устранят двусмысленность вывода.