generated at
Nimの型
from Nim


関数の型
普通に。
nim
type F = proc(arg: int): int

Subrange型
nim
var hoge: range[0..5] hoge = 6 # compile error !!


型のエイリアス
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
nim
let f = "abc".find('d') echo (f.get == 2) # これ、コンパイルエラー出ないんだが? echo (f.isSome and f.get() == 2) # 本来はこれを強制して欲しい
なんか渋いな、あまり使う意義を感じられない..


参考