Nimの型
関数の型
普通に。
code:nim
type F = proc(arg: int): int
Subrange型
code:nim
hoge = 6 # compile error !!
型のエイリアス
code:nim
type T = int # 型のエイリアスを作成
type D = distinct int # 全く新しい型を作成
T1 == T2はtrueだが、D1 == D2は別物なのでfalseになる
Object型
RootObj型を継承したオブジェクトは継承可能になる
逆にRootObjを継承しないとそのオブジェクトは継承できない
Enum型
定義の仕方
序数の扱い
succ, pred関数
{. pure .}プラグマ
Option型
optionsモジュールをimportして使う
関数側
Option[T]はsome(value)かnone(T)を返す
わざわざnone()の引数にTを書かないといけないのはちょっと渋いねmrsekut.icon
code:nim
let f = "abc".find('d')
echo (f.get == 2) # これ、コンパイルエラー出ないんだが?
echo (f.isSome and f.get() == 2) # 本来はこれを強制して欲しい
なんか渋いな、あまり使う意義を感じられない..
参考