如何在功能中设置默认值

And*_*sky 5 flutter

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

bool isOnGoing([DateTime date = DateTime.now()]) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是Studio返回“可选参数的默认值必须恒定”。

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

Gün*_*uer 7

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

编译时间常数对没有意义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();
    ...
}
Run Code Online (Sandbox Code Playgroud)