繁体   English   中英

我应该如何在 Dart 中使用断言?

[英]how should I use assert in 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
  }
}

如果agenull ,您可能会在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
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM