为什么我在引用 Dart 映射中不存在的键时不会出现编译时错误?

问题描述 投票:0回答:1

我是 Dart 新手,希望收到以下代码的编译时错误:

  final Map screens = const {
    "START": 'start_screen',
    "QUESTIONS": 'questions_screen',
    "RESULTS": 'result_screen',
  };

...
  activeScreen = screens['QUESTIONS1']!;

我知道我可以使用 containsKey 实时查找它,但是如果我的映射是 const,为什么 Dart 编译器找不到此代码错误?

flutter dart compile-time
1个回答
0
投票

对于此类用例,您可以使用

Records

const screens = (
  START: 'start_screen',
  QUESTIONS: 'questions_screen',
  RESULTS: 'result_screen',
);

final activeScreen = screens.START; // ✅ compiles and works
final activeScreen2 = screens.SOMETHING_ELSE; // ❌ error at compile time

作为奖励,您还可以获得 IDE 提示。

© www.soinside.com 2019 - 2024. All rights reserved.