Magicode logo
Magicode
0
2 min read

第5話 V言語のルーン文字

カサレリア。katzenです。

前回はV言語の文字列として、基本的な使い方から、変数展開、文字列長の取得や変換について紹介しました。

なにかわからないこととかありましたら、コメントいただければ一緒に悩みたいと思います。

間違えているところとか、アドバイスなどもいただけると嬉しいです。

さて、今回はあまり他の言語では見ないrune(ルーン)についてです。

魔術的なことを期待してしまいますが、前回同様文字列の仲間になります。

基本

端的に言えば、runeは単一のUnicode文字を表すものになります。

宣言は``バッククォートです。

r := `あ` // 英数字でももちろん問題ありません。(u32)
a := 'あ' // こちらは文字列(u8配列)
println(r)
>>>println(a) // 表示上は一緒です。
>>>

Unicodeを端的に言えば、4バイト以内で1文字を表す文字コードです。

そのため、V言語ではruneu32のエイリアスでもあります。

u32

ちなみにu32とは unsigned 32bitで、符号がないため4バイト(4*8bit)がデータ範囲として使えるということです。符号付きの場合、先頭1bitがプラスかマイナスかの判定に使われますので、データ範囲が狭くなります。

変換

runeを文字列に変換したい場合、str()を使用します。

r := `あ`
println("あ" == r.str())
>>> true

バイトデータに変換したい場合は、bytes()を使用します。

r := `あ`
println(r.bytes())
>>> [0xe3, 0x81, 0x82]

文字コード指定

文字コードからruneにすることも出来ます。

num := `\141`
println(num)
>>> a
unicode := `\u2605`
println(unicode)
>>>hex := `\xe3\x81\x82`
println(hex)
>>>

あくまで1文字ということに気をつけましょう。

文字列からruneへの変換は前回紹介しましたのでよろしければ参照ください。

公式

前回の文字列続きルーン文字と、文字たちの中をくぐり抜け、コンソール表示については問題なくできるようになりました。 そろそろ言語の勉強ではなく、なにか作りたくなってくるのではないでしょうか。

次回「V言語の標準入力」見てください!

Discussion

コメントにはログインが必要です。