嘿,我正在寻找一个函数,它将尽可能完整地将动态变量输出到Dart语言的控制台。如何以Dart语言完全转储/打印变量到控制台?
在PHP例如我会使用var_dump()
为了获得有关变量的所有信息。
在的JavaScript我会做下列之一:
1)转换对象JSON和打印的console.log(JSON.stringify(OBJ))
2)或自定义函数像这样的:
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;
//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += " ";
if(typeof(arr) == 'object') { //Array/Hashes/Objects
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') { //If it is an array,
dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += dump(value,level+1);
} else {
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
} else { //Stings/Chars/Numbers etc.
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}
但是在飞镖如果我做print(variable)
我得到这样的事情Instance of 'FooBarObject'
。我不能将对象转换为JSON,因为这不适用于所有对象。
所以我的详细问题:
是其中在镖的功能或自定义功能,其可以打印具有未知类型(对象,阵列等),包括所有的(公共)性质的变量以及嵌套的对象和变量到我的控制台?或者哪个功能最接近这个愿望?
DSON包装推出自己的作品相当不错对于我来说,如果我尝试使用反射自定义解决方案,我会在这里发布感谢。 – Blackbam
有很多关于反射的问题。他们大多数仍然应该工作。反思并没有改变那么多。如果您想在Web应用程序的生产环境中使用反射,还可以使用'reflectable'软件包,将反射代码转换为静态代码,以防止抖动。 –