4

私は囲碁の学習を始め、いくつかのアルゴリズムを実装したいと考えています。文字列を反復処理してから文字を取得できますが、これらの文字は Unicode 番号です。

goで文字を文字列に連結する方法は? 何か参考になりましたか?公式ページでプリミティブに関するものを見つけることができませんでした。

4

4 に答える 4

9

を使用しrangeて文字列を反復処理すると Unicode 文字が得られ、インデックスを使用して文字列を反復処理するとバイトが得られます。ルーン文字列の仕様 とその変換を参照してください。

+ The New Idiot が述べたように、文字列はoperatorを使用して連結できます。

文字から文字列への変換には 2 つの要素があります。byte(またはバイト シーケンス) を文字列に変換できます。

string(byte('A'))

runeまたは、 (またはルーンシーケンス)を文字列に変換できます。

string(rune('µ'))

違いは、ルーンは Unicode 文字を表し、バイトは 8 ビット値を表すことです。

しかし、これはすべて、上でリンクした仕様のそれぞれのセクションで言及されています。とてもわかりやすいので、ぜひ読んでみてください。

于 2013-06-26T08:04:57.133 に答える
3

[]runea を文字列に直接変換できます。

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

于 2013-06-26T15:01:57.623 に答える
2

使用する+

str:= str + "a"

次のようなものを試すことができます:

string1 := "abc"
character1 := byte('A')
string1 += string(character1)

この答えでさえ役立つかもしれません。

于 2013-06-26T07:55:27.080 に答える