Heim > Artikel > Backend-Entwicklung > golang string转slice
In Golang ist der String-Typ ein unveränderlicher Typ, das heißt, sein Wert kann nicht direkt geändert werden. Aber in Szenarien müssen wir manchmal den String-Typ in eine modifizierbare Zeichenfolge (Slice) konvertieren. In diesem Artikel werden zwei Methoden vorgestellt, um diese Konvertierung zu erreichen.
Methode 1: Verwenden Sie das Strings-Paket
Das Strings-Paket ist ein String-Verarbeitungspaket in der Golang-Standardbibliothek, das eine Methode zum Konvertieren von Strings in Slices bereitstellt. Die spezifische Implementierung lautet wie folgt:
import "strings" func StringToSlice(s string) []rune { return []rune(s) }
Der Runentyp wird in dieser Methode verwendet. Der Runentyp stellt Unicode-Zeichen dar und kann Zeichen in Chinesisch, Japanisch, Koreanisch und anderen Sprachen enthalten. Durch die Umwandlung des String-Typs in den Rune-Typ können Sie eine modifizierbare Zeichenfolge (Slice) erhalten.
Das Folgende ist ein einfaches Beispiel, das die Verwendung dieser Methode zeigt:
package main import ( "fmt" "strings" ) func StringToSlice(s string) []rune { return []rune(s) } func main() { s := "hello world" sl := StringToSlice(s) sl[0] = 'H' fmt.Println(sl) fmt.Println(strings.ToUpper(string(sl))) }
Programmausgabe:
[72 101 108 108 111 32 119 111 114 108 100] HELLO WORLD
Durch Konvertieren des von StringToSlice zurückgegebenen Slice Funktion Wird an die Funktion strings.ToUpper übergeben, können wir die gesamte Zeichenfolge in Großbuchstaben umwandeln.
Methode 2: Byte-Slice verwenden
Zusätzlich zur Verwendung des Strings-Pakets können wir auch den String-Typ in ein Byte-Slice konvertieren und dann das Byte-Slice in ein Byte-Slice umwandeln Runentyp-Scheibe. Die spezifische Implementierung lautet wie folgt:
func StringToSlice(s string) []rune { bs := []byte(s) rs := make([]rune, len(bs)) for i, b := range bs { rs[i] = rune(b) } return rs }
In dieser Methode verwenden wir den Byte-Typ Slice, und der Byte-Typ stellt eine 8-Bit-Ganzzahl ohne Vorzeichen dar. Indem wir den String-Typ in ein Byte-Typ-Slice umwandeln, können wir eine in Bytes gespeicherte Sequenz erhalten. Wir durchlaufen den Bytetyp-Slice, konvertieren jedes Element in den Runentyp und geben schließlich einen Runentyp-Slice zurück.
Das Folgende ist ein Beispiel für die Verwendung dieser Methode:
package main import ( "fmt" ) func StringToSlice(s string) []rune { bs := []byte(s) rs := make([]rune, len(bs)) for i, b := range bs { rs[i] = rune(b) } return rs } func main() { s := "hello world" sl := StringToSlice(s) sl[0] = 'H' fmt.Println(sl) }
Programmausgabe:
[72 101 108 108 111 32 119 111 114 108 100]
Ähnlich wie bei Methode 1 können wir auch das Slice konvertieren Verwenden Sie für Zeichenfolgen die vom Zeichenfolgenpaket bereitgestellten Zeichenfolgenoperationsfunktionen, um die Groß-/Kleinschreibung von Zeichenfolgen und andere Vorgänge zu implementieren.
Fazit
Generell empfehlen wir, für die Verarbeitung von Strings und Zeichenfolgen die vom Strings-Paket bereitgestellte API zu verwenden, da diese nicht nur eine bessere Leistung bietet, sondern auch mehr Typsicherheit bietet auch zur Verfügung gestellt. In einigen Sonderfällen bietet Byte Slice jedoch eine flexiblere Verarbeitungsmethode, die sich an unterschiedliche Anforderungen anpassen lässt.
Das obige ist der detaillierte Inhalt vongolang string转slice. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!