Senior
// 1. kérdés. Mit fog kiírni a képernyőre? package main import "fmt" func main() { s := "Hello world" s[0] = "h" if err != nil { fmt.Println("Hiba", err) } fmt.Println(s) }
sobes.tech MI
Válasz az MI-től
A kód nem fog fordulni. Go-ban a stringek (string) nem módosíthatók, nem lehet értéket rendelni egy string egyetlen bájtjához, például s[0] = "h" fordítási hibát okoz.
Ezenkívül a err változó nincs deklarálva, ezért az if err != nil {} feltétel is hibát fog okozni.
A helyes módja a string módosításának, hogy létrehozunk egy újat, például:
package main
import "fmt"
func main() {
s := "Hello world"
s = "h" + s[1:]
fmt.Println(s) // "hello world"-t fog kiírni
}
Így az eredeti kód fordítási hibákhoz vezet és semmit sem fog kiírni.