Dart 2.14版本使用triple-shift(>>>)运算符报错原因及解决方案
Dart 2.14 无法使用
>>>运算符的解决方案 Dart 2.14 版本确实已正式纳入无符号右移三尖括号运算符>>>,你遇到的报错既不是操作错误,也不是版本缺陷,而是项目语言版本约束未适配导致的特性未启用问题。
报错原因
Dart SDK 的新语法特性会和语言版本约束绑定,即使你本地安装了 2.14 版本的 Dart SDK,只要项目声明的最低支持 SDK 版本低于 2.14,新版本的语法特性默认会被禁用,避免低版本环境运行高版本语法代码出现兼容问题,你遇到的Expected an identifier报错就是编译器无法识别>>>运算符导致的。
修复方案
项目场景
- 打开项目根目录下的
pubspec.yaml文件,找到environment配置段,将 Dart SDK 的最低版本要求调整到 2.14.0 及以上:
environment: sdk: '>=2.14.0 <3.0.0'
- 执行
flutter pub get(Flutter 项目)或dart pub get(纯 Dart 项目)刷新项目配置,重启 IDE 后语法报错就会消失。
单文件运行场景
如果你是单独运行无项目配置的 Dart 文件,可以在文件的第一行添加版本指定注释:
// @dart=2.14 void main() { print(0xff >>> 1); }
即可直接运行。
DartPad 适配方法
DartPad 默认使用的最低语言版本较低,你可以在界面右上角的版本选择下拉框中手动选择 2.14 及以上的 SDK 版本,即可正常运行包含>>>运算符的代码。
配置生效后运行你提供的示例代码,将输出预期结果127。
内容的提问来源于stack exchange,提问作者Suragch
相关产品推荐
相关产品推荐

