首页 > 解决方案 > 我应该如何在 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呢?

标签: dart

解决方案


assert用于调试,它只是意味着条件应该是true继续。让我解释:

class MyClass {
  final int age;

  MyClass({this.age});

  void someMethod() {
    // using `age` here
  }
}

您可能会遇到someMethodif agepass 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
  }
}

推荐阅读