sdk_version_ui_as_code
for、if 和 spread 元素直到 2.3.0 版本才支援,但此程式碼需要在早期版本上執行。
描述
#當在 SDK 約束下限小於 2.3.0 的程式碼中找到 for、if 或 spread 元素時,分析器會產生此診斷。在早期版本中不支援使用 for、if 或 spread 元素,因此此程式碼無法在早期版本的 SDK 上執行。
示例
#以下是定義了 SDK 約束下限小於 2.3.0 的 pubspec 檔案示例:
yaml
environment:
sdk: '>=2.2.0 <2.4.0'在該 pubspec 檔案所在的包中,如下程式碼會產生此診斷:
dart
var digits = [for (int i = 0; i < 10; i++) i];常見修復方法
#如果您不需要支援早期版本的 SDK,則可以提高 SDK 約束,以允許使用此語法。
yaml
environment:
sdk: '>=2.3.0 <2.4.0'如果您需要支援早期版本的 SDK,則重寫程式碼以不使用這些元素。
dart
var digits = _initializeDigits();
List<int> _initializeDigits() {
var digits = <int>[];
for (int i = 0; i < 10; i++) {
digits.add(i);
}
return digits;
}