[英]Check whether assertions are enabled inside of main function in dart?
我知道為了運行啟用了斷言的文件,我必須使用--enable-asserts
標志來運行它,如下所示:
dart --enable-asserts file_name.dart
如何驗證主 function 內部是否啟用了斷言,如果沒有則打印一些東西?
不確定是否有任何正確的方法可以做到這一點,但你可以像這樣“破解”一些東西:
void main() {
if (assertEnabled()) {
print('Asserts enabled!');
} else {
print('Asserts not enabled!');
}
}
bool assertEnabled() {
try {
assert(false);
return false;
} catch (_) {
return true;
}
}
對於不涉及拋出和捕獲AssertionError
的方法,您可以利用僅在啟用斷言時才評估的assert
表達式:
void main() {
if (assertEnabled()) {
print('Asserts enabled!');
} else {
print('Asserts not enabled!');
}
}
bool assertEnabled() {
var result = false;
assert(result = true);
return result;
}
通常,您還可以創建和調用匿名 function 以僅在啟用斷言時執行任意代碼:
assert(() {
print('Asserts enabled!');
return true;
}());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.