Heim  >  Artikel  >  Backend-Entwicklung  >  ## Warum kann ich eine Zeichenfolge an Ort und Stelle in Go nicht ändern?

## Warum kann ich eine Zeichenfolge an Ort und Stelle in Go nicht ändern?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 10:25:30815Durchsuche

## Why Can't I Modify a String in Place in Go?

Warum kann ich eine Zeichenfolge nicht an Ort und Stelle in Go ändern?

Zeichenfolgen in Go sind unveränderlich, was bedeutet, dass Sie ihren Inhalt nach der Erstellung nicht mehr ändern können. Dies geht aus dem folgenden Fehler hervor: „kann nicht an new_str[i] zugewiesen werden“.

Um den Inhalt eines Strings zu ändern, müssen Sie ihn zunächst in ein []Byte-Slice umwandeln. Im Gegensatz zu Strings sind Byte-Slices tatsächlich veränderbar. Anschließend können Sie die gewünschten Änderungen am Byte-Slice vornehmen und es mit der Funktion string(...) wieder in einen String umwandeln.

Hier ist eine modifizierte Version Ihres Codes, die Byte-Slices verwendet, um Kleinbuchstaben in zu ändern Großbuchstaben:

<code class="go">func ToUpper(str string) string {
    bytes := []byte(str)
    for i := 0; i < len(str); i++ {
        if bytes[i] >= 'a' && bytes[i] <= 'z' {
            chr := uint8(rune(bytes[i]) - 'a' + 'A')
            bytes[i] = chr
        }
    }
    return string(bytes)
}</code>

Wenn Sie jetzt ToUpper("cdsrgGDH7865fxgh") aufrufen, werden alle Kleinbuchstaben korrekt in Großbuchstaben umgewandelt.

Das obige ist der detaillierte Inhalt von## Warum kann ich eine Zeichenfolge an Ort und Stelle in Go nicht ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn