Dart-是解构功能的名称,它允许从for或if语句构建数组



由于并非dart中的所有内容都是表达式(如Kotlin(,我想知道下一个代码如何运行:

示例1

我做了一个for循环,以某种方式返回每个数组项,这就像一个解构,但使用了另一种语法。

void main() {
final numbers = [1, 2, 3];

final computedNumbers = [for(final n in numbers) n];

print(computedNumbers);
}

它打印:[1, 2, 3]

示例2

在Flutter中,如果像这样的话,你可以构建一个数组:

[
Text("My Text"),
// Compiles fine
if (myExpressionIsTrue) Text("Optional Text")
]

最后,它创建了一个";解构的";如果myExpressionIsTrue为true,则不包含元素的数组。有一件事让我很困惑,那就是如果我把if和{}放在一起,它就不会编译,就像这样:

[
Text("My Text"),
if (myExpressionIsTrue) { // This fails at compile time
Text("Optional Text") 
}
]

问题

问题是,由于iffor不是表达式,它是如何工作的?允许这样做的语言功能的名称是什么?

对于,该功能的名称为集合,如果则为collection。请参阅飞镖语言教程的列表部分。

我还强烈建议阅读《让Dart成为UI的更好语言》一文,该文讨论了该功能设计中的许多考虑因素。

相关内容

  • 没有找到相关文章

最新更新