嘿,我正在尋找一個函數,它將盡可能完整地將動態變量輸出到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'軟件包,將反射代碼轉換爲靜態代碼,以防止抖動。 –