GoのruneとPlan 9のRuneは同じものか
このような話があったので調べた。
Plan 9ではC言語でRuneが使える。
GoのRuneと同じでしょうけど関係はどうなんでしたっけか。
Goにはunicode文字を表現する組み込みの型としてruneがある。これはPlan 9のRuneが元になっていて、Plan 9のRuneはu.hで定義されている。
typedef uint Rune;u.hはアーキテクチャごとに異なるが、Rune型は全部同じだった。また、libc.hで有効なコードポイントの定数が用意されている。
/* 一部だけ抜粋 */enum{ Runeerror = 0xFFFD, /* decoding error in UTF */ Runemax = 0x10FFFF, /* 21-bit rune */};Goのruneは組み込み(builtinパッケージ)で
type rune = int32で、unicodeパッケージで
// 一部だけ抜粋const ( MaxRune = '\U0010FFFF' // Maximum valid Unicode code point. ReplacementChar = '\uFFFD' // Represents invalid code points.)とあるので、Goの方が充実しているなどの差はあるが、もの自体は同じ。