flutter 类'StringUtil'不能用作mixin,因为它既不是mixin类也不是mixin

kyvafyod  于 2023-05-19  发布在  Flutter
关注(0)|答案(1)|浏览(142)

我最初的目标是使用模式作为实验标志。

(int a, int b) minMax(List<int> list) {
  int min = list[0];
  int max = list[0];
  for (final i in list) {
    if (i < min) {
      min = i;
    }
    if (i > max) {
      max = i;
    }
  }
  return (min, max);
}

但我得到了:
This requires the 'records' language feature to be enabled
但是在analysis_options.yaml中,我已经添加了:

analyzer:
  enable-experiment:
    - records
    - patterns
    - value-class

flutter cleanflutter doctor
Flutter (Channel stable, 3.7.6, on macOS 12.5.1 21G83 darwin-arm64, locale en-US)
所以我找到了这个答案How to use Dart 3 Alpha in a Flutter project?
它说我应该切换到主频道。是的

flutter --version
Flutter 3.9.0-13.0.pre.11 • channel master • https://github.com/flutter/flutter.git
Framework • revision 2392be7656 (31 minutes ago) • 2023-03-21 16:22:01 -0400
Engine • revision 87ddd910f1
Tools • Dart 3.0.0 (build 3.0.0-348.0.dev) • DevTools 2.22.2

但仍然会出错。
所以我检查了他们的示例仓库,在相同的答案https://github.com/yeasin50/experimental_project/blob/test-on-3.7.0-29.0.pre.21/pubspec.yaml
我注意到他们在pubspec.yaml中将Dart版本更改为3.0.0,这在答案中没有提到。
所以把dart版本改成了

environment:
  sdk: '>=3.0.0-151.0.dev <4.0.0'

模式现在可以工作了,但是我的项目中到处都是新的错误。

The class 'StringUtil' can't be used as a mixin because it isn't a mixin class nor a mixin.

如何使用pattern并保持dart sdk <3.0.0?我认为实验性旗帜的目标就是这样做。如果您正在有效地使用dart 3.0.0,那么在分析选项yaml中添加实验标志的意义何在?默认情况下是启用的吗我通过移除标志进行了测试,它仍然可以在dart3.0.0上工作

dz6r00yl

dz6r00yl1#

使StringUtil类作为mixin非抽象或接口

相关问题