dart - 扩展运算符可以用于提供函数参数吗?

标签 dart flutter

我正在编写扩展 statelessWidget 的类,它的构建方法返回 Text()小部件。我需要将来自 Map<dynamic, dynamic> 中的构造函数的文本选项(对齐、阶梯等)传递给它.为什么我不能使用 spread像这样的运算符

final Map textOptions;
final String text;

build(BuildContext context) {
    return Text(text, ...textOptions)
}

最佳答案

您目前只能对集合文字使用展开运算符([] 用于 List{} 用于 MapSet).

来自 Bob Nystrom's article介绍 Dart 2.3 的新特性:

A spread can only appear in a place that can gracefully handle receiving zero or more values. Without completely overhauling the language’s execution model and turning it into Icon (which I find strangely appealing, but probably not practical…), there aren’t too many places that fit that constraint. Basically collection literals and maybe positional argument lists. (I wrote a proposal for the latter, but it’s quite complex so we aren’t doing it, at least not right now.)

但是,该提案并未完全涵盖您想要的内容,即将 Map 扩展到可选的命名参数中。

关于dart - 扩展运算符可以用于提供函数参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277415/

相关文章:

android - Flutter Event Channel Stream 导致应用程序崩溃(与设备的连接丢失)

flutter - Flutter和Dart文档中的@macro注释是什么

flutter - 如何解决Flutter错误Column的children不能包含任何null值,但在索引0处发现null值?

firebase - Firebase中的UserCredential

flutter - 如何为到达页面后的窗口小部件树中的所有窗口小部件提供身份验证证书,并使导航器仍在工作

firebase - Flutter Firestore 同一文档的两个 StreamBuilder 算作 2 次读取?

function - 如何将函数分配给 dart 中的类字段?

flutter - 当应用程序在后台时使用 uni_links

android - Flutter - 如何减少设备上的应用程序大小

dart - 我怎么知道一个库是服务器端、客户端还是两者兼而有之?