假设Dart 2.14包含三重移位操作符(>>>
),但当我试图使用它时,我得到一个错误:
print(0xff >>> 1);
编译器突出显示三个>
中的最后一个,并说:
期望一个标识符。
在我的本地机器和DartPad上都是如此。两者都使用了Flutter 2.5附带的Dart 2.14版本。
是我做错了什么还是这是一个问题与释放?
你可以参考我在这里的相关回答。
任何语言特性在给定的版本中引入的,要求该版本作为最小约束为了你的项目。这意味着你需要更新你的pubspec.yaml
:
environment:
sdk: '>=2.14.0 <3.0.0'
现在,你可以使用:
var foo = 42;
foo >>> 2;
如果编译此代码,所需的Dart SDK版本2.14.1.
Dart语言站点的文档和示例使用版本2.13.4的Dart SDK。https://dart.dev/tools/sdk。
因此,当您尝试使用Flutter时,它使用SDK版本小于2.14.1.
下载最新的Flutter SDKhttps://flutter.dev/docs/get-started/install/windows和替换旧的那个。更新pubspec.yaml文件
environment:
sdk: ">=2.14.0 <3.0.0"
在没有Flutter应用程序的情况下运行代码:
从https://dart.dev/tools/sdk/archive下载最新Dart SDK
使用Android Studio IDE创建项目
创建一个新的Flutter项目。选择飞镖
LocateDart SDK路径,您下载的文件(必须提取)
提供您的项目名称位置和.
创建一个Dart文件并编写以下代码行。
输出void main() { final value = 0x22; print("Current value : $value"); print("Unsigned shift right value is : ${(value >>> 4)}"); }
F:/Dart/dart-sdk/bin/dart.exe --enable-asserts F:FlutterTestDartLanguagemain.dart Current value : 34 Unsigned shift right value is : 2 Process finished with exit code 0
享受快乐的编码。由于