dart - 我应该如何在 Dart 中使用断言?
问题描述
我看到了类似的示例代码:
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
}
}
您可能会遇到someMethod
if age
pass is 的问题null
,因此要确保它不是null
,您可以使用assert
:
class MyClass {
final int age;
MyClass({this.age}) : assert(age != null, "Make sure age isn't null");
void someMethod() {
// using `age` here
}
}
推荐阅读
- node.js - 使用 res.redirect() 时,带有 Express 的 Node.js 不会重定向到外部 URL
- selenium - selenium 错误 WebDriverException:未知错误:asp 核心中没有 chrome 二进制文件
- r - 与其他方法相比,使用 Caret 包的 KNN 给出了不好的结果
- javascript - .bind this 在类方法中
- java - Java JFrame 意外地奇怪地删除组件
- r - 在 Google Colab 中,您如何在 Google Drive 中找到文件的路径。我正在使用 R
- java - 使用 Ridesharing 应用程序请求 RDMS Firebase 分片的高级建议
- javascript - 在Javascript中生成由函数映射返回的两个或多个项目
- c - 计算每个字母在字符串中出现的次数
- python - 在 Pyspark 中解析包含 XML 字符串的列