You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart中为可选值使用带条件的assert断言?

如何在Dart的assert断言中添加条件判断?

当然可以实现这种“仅当可选参数不为null时才进行断言检查”的需求,但你示例里的写法有语法错误——Dart的assert接受的是布尔表达式,不能直接在里面写if语句。

正确的写法是用逻辑运算符组合条件,比如用||(逻辑或)来表达:要么参数为null,要么参数满足大于0的要求:

class Spinner extends StatefulWidget {
  const Spinner({
    super.key,
    this.durationInSeconds = 6,
    required this.child,
    this.stopAfter,
  }) : assert(stopAfter == null || stopAfter > 0);
}

这个表达式的逻辑是:

  • 如果stopAfter是null,断言直接通过
  • 如果stopAfter不为null,就会检查它是否大于0,不满足则触发断言错误

你也可以用条件表达式来写,逻辑和上面完全一致,只是写法不同:

assert(stopAfter == null ? true : stopAfter > 0);

两种写法都能实现你的需求,其中逻辑或的写法更简洁直观,是Dart里常用的方式。

内容的提问来源于stack exchange,提问作者mirkancal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:50:27