是否有 Dart 点差运算符和空感知运算符的组合可以做到这一点?
[
1,
...twoOrNull() // this will be inserted only if it's null. something else than the ... operator will be here.
3,
]
Run Code Online (Sandbox Code Playgroud)
所以列表将是[1, 2, 3]或[1, 3]。我想twoOrNull()可以返回[2]or [],但如果它可以返回2or就好了null。
这可能不引入变量吗?
有一个可识别空值的扩展运算符 ( ...?),但您的twoOrNull()函数必须返回[2]或null;扩展运算符在另一个集合文字中扩展一个可迭代对象,并且“扩展”一个int.
还有 Dart 的 collection-if 构造,但它需要调用twoOrNull()两次或将结果保存在变量中:
[
1,
if (twoOrNull() != null) twoOrNull(),
3,
]
Run Code Online (Sandbox Code Playgroud)
请参阅Dart 语言教程中的列表部分,了解有关传播和收集-if的更多信息。
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |