我应该如何在Dart中使用断言?
我看到exmaple代码类似于:我应该如何在Dart中使用断言?,dart,Dart,我看到exmaple代码类似于: class ModelBinding extends StatefulWidget { ModelBinding({ Key key, this.initialModel = const GalleryOptions(), this.child, }) : assert(initialModel != null), super(key: key); ... 所以我写了一些东西: class Person {
class ModelBinding extends StatefulWidget {
ModelBinding({
Key key,
this.initialModel = const GalleryOptions(),
this.child,
}) : assert(initialModel != null),
super(key: key);
...
所以我写了一些东西:
class Person {
String firstName;
Person({name}){
print(name);
}
}
class Employee extends Person {
Employee(String name) : assert(false), super(name: name);
}
main() {
var emp = new Employee('Jason');
}
无论是assert(false)
还是assert(true)
,结果都是一样的
那么
assert
的含义是什么呢?assert
用于调试,它只是意味着条件应该是true
才能继续。让我解释一下:
class MyClass {
final int age;
MyClass({this.age});
void someMethod() {
// using `age` here
}
}
如果age
passed为null
,您可能会在someMethod
中遇到问题,因此为了确保它不是null
,您可以使用assert
如下:
class MyClass {
final int age;
MyClass({this.age}) : assert(age != null, "Make sure age isn't null");
void someMethod() {
// using `age` here
}
}
它与其他编程语言(例如,,…)中的相同。您没有看到任何效果,因为您可能正在运行未启用断言的代码发布版本。改为运行调试生成。