我最近一直在迁移我的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();
但好吧,这就是我一直以来的零安全迁移方式