Sobes.tech
Senior

// Întrebarea 1. Ce va afișa pe ecran? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech AI

Răspuns de la AI

Acest cod nu nu va fi compilat și va genera o eroare de compilare.

Motivul este că șirurile în Go sunt segmente imutabile de octeți. Încercarea de a modifica un octet individual al unui șir, cum ar fi în s[0] = 'h', nu este posibilă și va duce la o eroare de tip "cannot assign to s[0]".

Dacă trebuie să modificați un șir, trebuie să îl convertiți într-un segment de octeți sau rune, să modificați elementul necesar și apoi să îl convertiți înapoi în șir:

package main

import "fmt"

func main() {
    s := "Hello world"
    b := []byte(s)
    b[0] = 'h'
    s = string(b)
    fmt.Println(s) // va afișa "hello world"
}