2013-11-25 3 views

回答

3

默认值必须是编译时间常量,所以'const {}'会使编译器保持高兴,但possi bly不是你的功能。

如果您想为每个调用指定一个新的可修改映射,则不能在函数参数上使用默认值。每次调用该函数时都会使用相同的值,因此您无法以这种方式为每个调用获取新值。 要在每次调用函数时创建一个新对象,您必须在函数本身中执行此操作。典型的方式是:

void func(String arg1, [Map args]) { 
    if (args == null) args = {}; 
    ... 
} 
4

您必须使用const关键字:

void func(String arg1, [ Map args = const {} ]) { 
    ... 
} 

警告:如果您尝试修改默认args您将获得:

不支持的操作:不能设置值不可修改的地图

+0

将这个让我改变'在函数体中,如'ARGS [“我的”] =“自己” args';' –

+0

没有,你会得到一个运行时错误:不支持的操作:无法在不可修改的Map中设置值 –

相关问题