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