Этот фрагмент не является корректной программой ни Go, ни Swift. По конструкции := он похож на Go: println([s0]) ошибочен, а строку нельзя изменять присваиванием s[0].
Какой результат выведет консоль в примере №63
Этот фрагмент не является корректной программой ни Go, ни Swift. По конструкции := он похож на Go: println([s0]) ошибочен, а строку нельзя изменять присваиванием s[0].
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой вывод получит консоль после выполнения следующей программы.
func main() {
s:="test"
println([s0])
s[0] = "R"
println(s)
}
Ответ
Этот фрагмент не является корректной программой ни Go, ни Swift. По конструкции := он похож на Go: println([s0]) ошибочен, а строку нельзя изменять присваиванием s[0].
Если цель — заменить первый ASCII-символ в Go:
s := "test"
println(s[0])
b := []byte(s)
b[0] = 'R'
s = string(b)
println(s)
Сначала печатается байтовый код t, то есть 116, затем Rest. Строки неизменяемы; для многобайтных символов нужно работать с []rune или корректными границами UTF-8. Метка swift у исходного блока не делает его Swift-кодом.