Dart默认可为null的参数



我最近一直在迁移我的Flutter/Dat应用程序,以实现零安全兼容/sound。为此,我遇到了一种情况,我真的无法找到"最佳实践"。

我有一些类似于以下的功能:

String defaultErrorMessage({String? message = 'Please try again later.'}) {
return "Error. $message";
}

相当简单——只是为了标准化错误消息,并为可能没有错误消息的情况提供默认消息。

问题是:

参数"message"不是必需的,并且具有默认值。如果我给它传递一个空字符串,它将简单地打印";错误null"-这显示在这个镖靶中

对于默认参数,我应该使用一种简单的方法或特殊的语法吗?我认识到有一些简单的方法可以重写这一点,我觉得我不应该这样做——所有这些空特性/检查的目的不是自动做这样的事情吗?具体来说,我可以做以下事情:

String defaultErrorMessage({String? message}) {
message ??= 'Please try again later.';
return "Error. $message";
}

但我更愿意在函数定义本身中处理这个问题。

提前感谢您的帮助!

所以,基本上,您想让它在传递null值时使用您设置的默认消息吗?我很抱歉地说,你已经发布的代码可能是最好的。

但是,如果您希望null值与不传递值相同,为什么还要让变量为null呢?这样做不是更有意义吗?

String defaultErrorMessage({String message = 'Please try again later'}) {
return "Error. $message";
}

如果有人做了这样的事情,这当然会给你带来一些编译错误:

defaultErrorMessage(message: null);

所以每次发生这种情况时,你都必须转到并将其更改为

defaultErrorMessage();

但好吧,这就是我一直以来的零安全迁移方式

相关内容

  • 没有找到相关文章

最新更新