Golang は、Google によって開発されたプログラミング言語で、文字列を処理する際に独自の不変特性を備えています。 Golang では、文字列は不変です。つまり、文字列が作成されると、その内容をその場で変更することはできません。この記事では、具体的なコード例を通じて、読者に Golang の文字列の不変性をより深く理解してもらいます。
まず、文字列を結合する簡単な例を見てみましょう:
package main import "fmt" func main() { str1 := "Hello" str2 := "World" result := str1 + " " + str2 fmt.Println(result) }
上記のコードでは、最初に 2 つの文字列変数 str1
と str2# を作成しました。 ## を入力し、
演算子を使用して 2 つの文字列を連結し、結果を変数
result に代入します。 Golang では、文字列を操作するたびに新しい文字列が作成され、その結果が新しい変数に代入されます。元の文字列変数は変更されません。
package main import "fmt" func main() { str := "Hello" // 试图修改字符串的第一个字符为大写 str[0] = 'H' fmt.Println(str) }
str を変更しようとしています。最初の文字は大文字の
H に変更されますが、このコードをコンパイルして実行すると、エラー メッセージが表示されます:
cannot assign to str[0]。これは、Golang では文字列が不変であり、1 つの文字を直接変更できないためです。
strings パッケージの関数は、スプライシング、インターセプト、置換などの操作に使用できます。
strings パッケージの関数を使用した例を次に示します。
package main import ( "fmt" "strings" ) func main() { str := "Hello, World!" // 使用strings.ToUpper将字符串转换为大写 upperStr := strings.ToUpper(str) fmt.Println(upperStr) // 使用strings.Replace替换字符串中的部分内容 replacedStr := strings.Replace(str, "Hello", "你好", 1) fmt.Println(replacedStr) // 使用strings.Split按照逗号分割字符串 parts := strings.Split(str, ", ") for _, part := range parts { fmt.Println(part) } }
strings.ToUpper 関数を使用して文字列を大文字に変換しました。 ,
strings.Replace 関数は文字列の内容の一部を置換し、
strings.Split 関数は文字列をカンマに従って複数の部分に分割します。これらの関数は、元の文字列を変更せずに新しい文字列を返します。
以上がGolang における文字列の不変の性質を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。