Ccmmutty logo
Commutty IT
0 pv2 min read

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

https://cdn.magicode.io/media/notebox/80e66f9a-5f70-4d81-9885-1a78f1092255.jpeg
カサレリア。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

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