Dart 中的 Map 可以包含函数吗?

bon*_*ody 3 dart flutter

我试图制作一个包含函数的地图。当我尝试运行它时,它返回错误:

没有为 Map 类型定义方法“mltply”。

Map<String, Function> library = {
    "mltply": (int x, int y) => x * y,
    "addtn": (int x, int y) => x + y
  };
  print(library.mltply(2, 4));
Run Code Online (Sandbox Code Playgroud)

Amy*_*Amy 5

是的。

您的代码错误,请尝试以下操作:

Map<String, Function> library = {
    "mltply": (int x, int y) => x * y,
    "addtn": (int x, int y) => x + y
  };
  print(library["mltply"]!(2, 4));
Run Code Online (Sandbox Code Playgroud)

请注意,地图需要通过括号和字符串来访问(与 Javascript 不同)。

此外,如果可能的话,您应该为您的函数提供显式函数定义。

而不是Function使用int Function(int, int)