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"
}