私は囲碁の学習を始め、いくつかのアルゴリズムを実装したいと考えています。文字列を反復処理してから文字を取得できますが、これらの文字は Unicode 番号です。
goで文字を文字列に連結する方法は? 何か参考になりましたか?公式ページでプリミティブに関するものを見つけることができませんでした。
を使用しrange
て文字列を反復処理すると Unicode 文字が得られ、インデックスを使用して文字列を反復処理するとバイトが得られます。ルーンと文字列の仕様
とその変換を参照してください。
+
The New Idiot が述べたように、文字列はoperatorを使用して連結できます。
文字から文字列への変換には 2 つの要素があります。byte
(またはバイト シーケンス) を文字列に変換できます。
string(byte('A'))
rune
または、 (またはルーンシーケンス)を文字列に変換できます。
string(rune('µ'))
違いは、ルーンは Unicode 文字を表し、バイトは 8 ビット値を表すことです。
しかし、これはすべて、上でリンクした仕様のそれぞれのセクションで言及されています。とてもわかりやすいので、ぜひ読んでみてください。
[]rune
a を文字列に直接変換できます。
string([]rune{'h', 'e', 'l', 'l', 'o', '☃'})
http://play.golang.org/p/P9vKXlo47c
参考までに、それは Go 仕様の Conversions セクションの「Conversions to and from a string type」というタイトルのセクションにあります。
http://golang.org/ref/spec#Conversions
+
連結に関しては、内部で多くのコピーを実行するため、すべての文字を演算子で連結したくないでしょう。一度に 1 つずつルーンを取得していて、ルーンの中間スライスを構築していない場合は、この種のメソッド bytes.Buffer
を持つを使用する可能性が最も高いでしょう。http://golang.org/pkg/bytes/#Buffer.WriteRuneWriteRune
使用する+
str:= str + "a"
次のようなものを試すことができます:
string1 := "abc"
character1 := byte('A')
string1 += string(character1)
この答えでさえ役立つかもしれません。