Nimの型
from Nim
Nimのポインタ型
Nimのコレクション型
関数の型
普通に。
code:nim
type F = proc(arg: int): int
Subrange型
code:nim
var hoge: range0..5
hoge = 6 # compile error !!
型のエイリアス
code:nim
type T = int # 型のエイリアスを作成
type D = distinct int # 全く新しい型を作成
T1 == T2はtrueだが、D1 == D2は別物なのでfalseになる
Object型
RootObj型を継承したオブジェクトは継承可能になる
逆にRootObjを継承しないとそのオブジェクトは継承できない
Nimのobject
Enum型
参考
定義の仕方
序数の扱い
succ, pred関数
{. pure .}プラグマ
http://flat-leon.hatenablog.com/entry/nim_howto#enum型を定義する
Option型
docs
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) # 本来はこれを強制して欲しい
なんか渋いな、あまり使う意義を感じられない..
参考
【Nim】個人的逆引きリファレンス - Flat Leon Works