地图键的飞镖式安全功能不起作用?

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

具有以下简单的 dart 功能:

void main()
{  
    Map<String, dynamic> m = { 2 : 200.0, 'x' : 8.0 }; 
    print( "m: $m");
}

为什么 Dart 编辑器/编译器不抱怨 int 键类型 (2)? 我希望安全地知道我的所有密钥类型都是字符串,但这似乎运行良好。

dart
2个回答
0
投票

这似乎是一个错误。尽管运行时类型是

int
,编辑器和 VM 不会抱怨。

但是您可以使用解决方法,直到解决此问题:

void main() {
  Map<String, dynamic> m = {};
  m[2] = 200.0;  // editor complains here. VM in checked mode still works, for some reason.
  m['x'] = 8.0;
}

0
投票

截至 2024 年(11 年后),这现已成为内置功能

错误:元素类型“int”无法分配给地图键类型 '细绳'。 (map_key_type_not_assignable 在 [creator_launchpad] lib/state/app_state_manager.dart:481)

enter image description here

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