Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при сборке и запуске программы?
package main
import "fmt"
func main() {
s := "go"
s[0] = 'G'
fmt.Println(s)
}Не скомпилируется
- Ждать
Go, будто строка — изменяемый массив байтов: строки в Go неизменяемы, поэтомуs[0] = 'G'отклоняется с ошибкойcannot assign to s[0]. - Ждать паники при выполнении: компилятор уже знает, что
s— строка, поэтому ошибка останавливает сборку и программа не запускается.
- Как получить строку
"Go"изs? - Что возвращает
s[0], если его прочитать, а не записать?