为什么在这种情况下不能使用扩展运算符?

时间:2019-05-23 14:26:14

标签: dart flutter

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

final Map textOptions;
final String text;

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

2 个答案:

答案 0 :(得分:2)

您当前只能将散布运算符用于集合文字($ZipFilesPath = "D:\Input" $UnzipPath = "D:\Output" $Shell = New-Object -com Shell.Application $Location = $Shell.NameSpace($UnzipPath) $ZipFiles = Get-Childitem $ZipFilesPath -Recurse -Include *.ZIP $progress = 1 foreach ($ZipFile in $ZipFiles) { Write-Progress -Activity "Unzipping to $($UnzipPath)" -PercentComplete (($progress / ($ZipFiles.Count + 1)) * 100) -CurrentOperation $ZipFile.FullName -Status "File $($Progress) of $($ZipFiles.Count)" $ZipFolder = $Shell.NameSpace($ZipFile.fullname) $Location.Copyhere($ZipFolder.items(), 1040) $progress++ $a= $ZipFile.Name Write-Host $a } 使用[]List{}使用Map)。

摘自Bob Nystrom's article,介绍了Dart 2.3的新功能:

  

价差只能出现在可以正常处理的地方   接收零个或多个值。无需彻底检修   语言的执行模型并将其转换为Icon(我发现   奇怪的是很吸引人,但可能不实用...),也没有   许多适合该约束的地方。基本上是集合文字   以及位置参数列表。 (我写了a proposal for the latter,但这很复杂,所以我们没有这样做,至少没有   现在。)

该建议并未涵盖您想要的内容,但是,将Set扩展为可选的命名参数。

答案 1 :(得分:0)

我认为,除了List和数组[1, 2, 3]以外,传播运算符不能与其他函数一起使用。
也许您可以先将地图转换为列表,然后再使用散布运算符。