Avatar ·

Teilstring-Extraktion in Go: Wie bekomme ich einen Teil eines Strings anhand von Indizes?

Hallo! Ich habe gerade angefangen, Go zu lernen und bin auf ein Problem bei der Arbeit mit Strings gestoßen. In anderen Sprachen (z.B. Python oder JavaScript) bin ich es gewohnt, so etwas wie `str[1:4]` zu machen, um einen Teilstring zu erhalten. In Go habe ich eine ähnliche Syntax ausprobiert, aber nicht das bekommen, was ich erwartet habe.\n\nHier ist mein Code:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n str := "Привет, мир!"\n sub := str[1:4]\n fmt.Println(sub) // Erwarte: "рив", bekomme aber etwas Seltsames\n}\n```\n\nStatt "рив" sehe ich irgendwelche kaputten Zeichen. Ich habe gelesen, dass Go UTF-8 verwendet, verstehe aber nicht, wie das die Teilstring-Extraktion beeinflusst. Außerdem habe ich es mit einem ASCII-String versucht:\n\n```go\nstr := "Hello, World!"\nsub := str[1:4]\nfmt.Println(sub) // Gibt "ell" aus – das funktioniert!\n```\n\nWarum gibt es Probleme mit Kyrillisch? Wie kann ich das beheben?