Вопрос: Как устроены строки в Go и почему нельзя менять символы по индексу?
Go
Junior
Без компании
Вопрос: Как устроены строки в Go и почему нельзя менять символы по индексу?
Ответы
Строка — неизменяемая последовательность байт (обычно UTF-8). Индексация даёт byte. Чтобы менять — конвертируйте в []byte или []rune.
```go
package main
import "fmt"
func main() {
s := "привет"
fmt.Println(len(s)) // байты
fmt.Println([]rune(s)) // руны (Unicode code points)
b := []byte("hello")
b[0] = 'H'
fmt.Println(string(b))
}
```