2015-02-05 17 views
12

Ich würde gerne wissen, ob es möglich ist, den Typ (int32/float64/string) von einem Wert in Nim zur Laufzeit zu bekommen?Wie erhält man den Typ eines Wertes als String?

Ich dachte, das wäre mit der "typeinfo" -Bibliothek möglich, aber ich kann es nicht herausfinden!

EDIT: eine Antwort und machte dies ganz schnell Got:

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 

Ausgang:

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

Antwort

14

schließen, ist es in der typetraits Modul:

import typetraits 

var x = 12 
echo x.type.name 
+3

Thank you! Liebe es :) – OderWat

Verwandte Themen