我可以将函数参数的默认值设置为某个值吗
那不是恒定的吗?例子:
tod := Mod[AbsoluteTime[], 86400]
f[x_:tod] := x
在上面,“tod”每次评估时都会改变,但“f[]”却会改变
不是。 “?f” 产生:
f[x_:42054.435657`11.376386798562935] := x
显示默认值是在我创建函数时硬编码的。
这里有解决方法吗?
如果函数保存其参数,它似乎可以工作:
tod := Mod[AbsoluteTime[], 86400]
SetAttributes[f, HoldAll];
f[x_: tod] := x
在[23]中:= f[]
输出[23]= 47628.994048
在[24]中:= f[]
输出[24]= 47629.048193
或者您可以使用如下所示的结构来代替默认值:
g[] := g[Mod[AbsoluteTime[], 86400]]
g[x_] := x
在[27]中:= g[]
输出[27]= 47706.496195
在[28]中:= g[]
输出[28]= 47707.842012
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)