sdk_version_gt_gt_gt_operator
運算子 “>>>” 直到 2.14.0 版本才被支援,但此程式碼要求能夠在早期版本上執行。
描述
#當代碼中使用運算子 >>> 且 SDK 約束的下限小於 2.14.0 時,分析器會產生此診斷。該運算子在早期版本中不受支援,因此此程式碼將無法在早期版本的 SDK 上執行。
示例
#這是一個 pubspec 示例,它定義了一個 SDK 約束,其下限小於 2.14.0
yaml
environment:
sdk: '>=2.0.0 <2.15.0'在使用該 pubspec 的軟體包中,如下所示的程式碼會產生此診斷
dart
int x = 3 >>> 4;常見修復方法
#如果你不需要支援舊版本的 SDK,則可以提高 SDK 約束以允許使用該運算子
yaml
environment:
sdk: '>=2.14.0 <2.15.0'如果你需要支援舊版本的 SDK,則重寫程式碼以不使用 >>> 運算子
dart
int x = logicalShiftRight(3, 4);
int logicalShiftRight(int leftOperand, int rightOperand) {
int divisor = 1 << rightOperand;
if (divisor == 0) {
return 0;
}
return leftOperand ~/ divisor;
}