Sobes.tech
Senior

// Soru 1. Ekranda ne gösterilecek? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech yapay zeka

AI'dan gelen yanıt

Bu kod derlenmeyecek ve derleme hatası verecektir.

Nedeni, Go'da dizgelerin değiştirilemez bayt dilimleri olmasıdır. s[0] = 'h' gibi bir dizgenin tek bir baytını değiştirmeye çalışmak mümkün değildir ve "cannot assign to s[0]" türünde bir hata ile sonuçlanır.

Bir dizgeyi değiştirmek istiyorsanız, onu bayt veya rune dilimine dönüştürmeli, gerekli öğeyi değiştirmeli ve sonra tekrar dizgeye dönüştürmelisiniz:

package main

import "fmt"

func main() {
    s := "Hello world"
    b := []byte(s)
    b[0] = 'h'
    s = string(b)
    fmt.Println(s) // "hello world" yazdırır
}