2015-02-05 9 views
12

Türünde (int32/float64/string), çalışma zamanında Nim'deki bir değerin alınmasının mümkün olup olmadığını bilmek ister misiniz?Bir değer türünü string olarak nasıl alabilirim?

Bu "typeinfo" kitaplığı ile mümkün olacağını düşündüm ama bunu anlayamıyorum!

DÜZENLEME: bir cevap var ve gerçekten hızlı bu yaptı:

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 

Çıktı:

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

cevap

14

yakın, o typetraits modülünde var:

import typetraits 

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

teşekkür ederiz! Sevdim :) – OderWat