Sobes.tech
Senior

// Pytanie 1. Co zostanie wyświetlone na ekranie? package main import "fmt" func main() { s := "Hello world" s[0] = "h" if err != nil { fmt.Println("Błąd", err) } fmt.Println(s) }

sobes.tech AI

Odpowiedź od AI

Kod nie zostanie skompilowany. W Go, łańcuchy (string) są niezmiennicze, nie można przypisać wartości do pojedynczego bajtu łańcucha, na przykład s[0] = "h" spowoduje błąd kompilacji.

Ponadto, zmienna err nie jest zadeklarowana, więc warunek if err != nil{} również spowoduje błąd.

Poprawny sposób zmiany łańcucha to utworzenie nowego łańcucha, na przykład:

package main

import "fmt"

func main() {
    s := "Hello world"
    s = "h" + s[1:]
    fmt.Println(s) // wyświetli "hello world"
}

W ten sposób, oryginalny kod spowoduje błędy kompilacji i nic nie wyświetli.