flutter - 如何在函数中设置默认值

标签 flutter

我尝试在函数中设置默认值:

bool isOnGoing([DateTime date = DateTime.now()]) {
    ...
}

但工作室返回“可选参数的默认值必须是常量”。

这种情况下如何设置默认参数?

最佳答案

您使用的语法是正确的,但正如错误消息所说,该值必须是编译时间常数。

编译时间常数对 DateTime.now() 没有意义。

作为一种解决方法,您可以使用:

/// Returns `true` is still going on.
///
/// [date] the date to check.
///   as default value `DateTime.now()` is used 
///   if no value or `null` was passed.
bool isOnGoing([DateTime date]) {
    date ??= DateTime.now();
    ...
}

关于flutter - 如何在函数中设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52702274/

相关文章:

android - Flutter SetState 不更新文本

flutter - 连续显示ListView项目

sorting - 如何通过嵌套值对 map 重新排序

flutter - 断言失败 : line 24 pos 15: 'initialCameraPosition != null' : is not true

flutter - 如何修复此错误 : The following assertion was thrown building FutureBuilder<DataSnapshot>(dirty, 状态:_FutureBuilderState<DataSnapshot>#89711):

flutter - 如何检测小部件外部的点击?

android - 如何在 flutter 后台运行 dart 代码?

java - 无法在 Flutter 项目中找到 layout.xml

flutter - 从另一个文件调用void函数

dart - Flutter:Google Map Plugin 如何在 map 内的两个坐标之间画一条线