24

実行時に Nim の値から型 (int32 / float64 / string) を取得できるかどうか知りたいですか?

これは「typeinfo」ライブラリで可能だと思っていましたが、わかりません!

編集:答えを得て、これを本当に素早くしました:

import typetraits

type
    MyObject = object
        a, b: int
        s: string

let obj = MyObject(a: 3, b: 4, s: "abc")

proc dump_var[T: object](x: T) =
    echo x.type.name, " ("
    for n, v in fieldPairs(x):
        echo("    ", n, ": ", v.type.name, " = ", v)
    echo ")"

dump_var obj

出力:

MyObject (
    a: int = 3
    b: int = 4
    s: string = abc
)
4

2 に答える 2

25

閉じて、それはtypetraitsモジュールにあります:

import typetraits

var x = 12
echo x.type.name
于 2015-02-05T20:09:26.183 に答える