Sobes.tech
Senior

// Küsimus 1. Mida ekraanil näidatakse? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech AI

Vastus AI-lt

See kood ei kompileeru ja põhjustab kompileerimisvea.

Põhjus on selles, et Go-s on stringid muutumatud baitide lõigud. Katse muuta üksik bait stringis, nagu s[0] = 'h', ei ole võimalik ja põhjustab tüüpi vea "cannot assign to s[0]".

Kui soovite stringi muuta, peate selle teisendama baitide või rune lõiguks, muutma vajaliku elemendi ja seejärel tagasi stringiks teisendama:

package main

import "fmt"

func main() {
    s := "Hello world"
    b := []byte(s)
    b[0] = 'h'
    s = string(b)
    fmt.Println(s) // väljastab "hello world"
}