我是 Dart 新手,希望收到以下代码的编译时错误:
final Map screens = const {
"START": 'start_screen',
"QUESTIONS": 'questions_screen',
"RESULTS": 'result_screen',
};
...
activeScreen = screens['QUESTIONS1']!;
我知道我可以使用 containsKey 实时查找它,但是如果我的映射是 const,为什么 Dart 编译器找不到此代码错误?
对于此类用例,您可以使用
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 提示。