2016-08-24 12 views
-1

golangにrune()関数を使用してオンラインで投稿された関数を見つけましたが、それは何かを調べるのに苦労しています。私はチュートリアルをやっていて、ドキュメントを経験していないので、探しているものを見つけるのは難しいです。golangどのようにrune()関数が動作するのですか

具体的には、私は

...これが失敗した理由を確認するために

fmt.Println(rune("foo")) 
をしようとしていますし、これは

fmt.Println([]rune("foo")) 
+4

'rune'型、ない機能です。 – JimB

+0

そのコードは、タイプ文字列から[rune]と[] runeに[conversion](https://golang.org/ref/spec#Conversions)を実行しようとしています。ルーンはユニコードコードポイントです。文字列を単一の縄に変換することはできませんが、2番目の例のように文字列を複数の紋に変換することはできます。 – Michael

+0

ルーンに慣れている間にcharと思う – Sridhar

答えて

5

runeは、移動中のタイプであることはありません。 int32のエイリアスですが、通常はUnicodeポイントを表すために使用されます。 rune()は関数ではなく、runeへの型変換の構文です。 Goの変換では、常に関数のように見えるような構文type()があります。

文字列の数値型への変換がGoで定義されていないため、コードの最初のビットが失敗します。しかしルーン/ int32sのスライスへの文字列の変換は言語仕様では、このように定義される:ルーンタイプのスライスに文字列型の値を変換

は、文字列の個々のUnicodeコードポイントを含む スライスをもたらします。

だからあなたの例では、値102とルーンのスライスを印刷111,111

+0

あなたはその情報を見つけたリンクを含むように投稿を編集できますか? – deltaskelta

関連する問題