Sobes.tech
Senior

// Vraag 1. Wat wordt er op het scherm weergegeven? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech AI

Antwoord van AI

Deze code zal niet compileren en een compilatiefout veroorzaken.

De reden is dat strings in Go onveranderlijke byte-slices zijn. Het proberen om een enkele byte in een string te wijzigen, zoals in s[0] = 'h', is niet mogelijk en zal resulteren in een fout van het type "cannot assign to s[0]".

Als je een string wilt wijzigen, moet je deze converteren naar een byte- of rune-slice, het benodigde element wijzigen en vervolgens weer converteren naar een string:

package main

import "fmt"

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