Sobes.tech
Senior

// Суроо 1. Экрана эмне чыгат? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech AI

AIден жооп

Бул код компиляцияланбайт жана компиляция учурунда ката пайда болот.

Анын себеби, Go тилиндеги саптар өзгөрүлбөс байт кесимдери болуп саналат. s[0] = 'h' сыяктуу саптын жеке байтын өзгөртүү мүмкүн эмес жана "cannot assign to s[0]" түрүндөгү ката менен аяктайт.

Эгер сапты өзгөртүшүңүз керек болсо, аны байт же руна кесимине айландыруу керек, керектүү элементти өзгөртүп, кайра сапка айландыруу керек:

package main

import "fmt"

func main() {
    s := "Hello world"
    b := []byte(s)
    b[0] = 'h'
    s = string(b)
    fmt.Println(s) // "hello world" чыгарат
}