Нет, make(string) в Go недопустим: make используется для slice, map и channel. Строку создают литералом, преобразованием или сборкой через подходящий инструмент.
Можно ли использовать make для строки (make(string))?
Нет, make(string) в Go недопустим: make используется для slice, map и channel. Строку создают литералом, преобразованием или сборкой через подходящий инструмент.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нет, make(string) в Go недопустим: make используется для slice, map и channel. Строку создают литералом, преобразованием или сборкой через подходящий инструмент.
s := "hello"
b := make([]byte, 5)
t := string(b)
_ = s
_ = t
В примере t содержит пять нулевых байтов, а не пять пробелов. Для последовательного построения текста удобен strings.Builder. Строки неизменяемы, поэтому выделение изменяемого строкового буфера через make не предусмотрено.