はじめに
Nimは型推論してくれるので、型を意識しなくても割と使えるど
いざ関数定義とかで型を書く必要が出てきたときに困ったりしてた。
で、どうやんの?
typeでOK。
type X = object of RootObj
type RefX = ref object of RootObj
proc someFunc(n: int): string = $(n * 2)
echo (new X).type
echo X().type
echo (new RefX).type
echo RefX().type
echo 3.type
echo 3'i8.type
echo 3'u.type
echo 3'u32.type
echo "hello".type
echo 'a'.type
echo (42, 'c', "string").type
echo someFunc.type
実行結果
ref X
X
RefX
RefX
int
int8
uint
uint32
string
char
(int, char, string)
proc (n: int): string{.noSideEffect, gcsafe, locks: 0.}
以上〜。