Подтвердить что ты не робот

Как получить тип значения в виде строки?

Я хотел бы знать, можно ли получить тип (int32/float64/string) из значения в Nim во время выполнения?

Я думал, что это возможно с библиотекой "typeinfo", но я не могу понять это!

EDIT: Получил ответ и сделал это очень быстро:

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
)
4b9b3361

Ответ 1

Закрыть, он находится в модуле typetraits:

import typetraits

var x = 12
echo x.type.name