【问题标题】:How to set default value in function如何在函数中设置默认值
【发布时间】:2018-10-08 12:25:45
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: flutter


    【解决方案1】:

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

    编译时间常数对于 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();
        ...
    }
    

    【讨论】:

    • 是的,我现在使用这种语法。我只是好奇-也许还有另一种解决方案...
    • 否,因为约束默认值需要是编译时间常量。
    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多