以下代码返回 nil:
(.setProperty (Properties.) "key1" "value1") -> nil
但是,以下内容似乎按预期工作:
(doto (Properties.) (.setProperty "key1" "value1")) -> {"key1" "value1"}
为什么?
.setProperty
返回前一个值,如果不存在,则返回null
值。由于它正在新的Properties
实例上运行,因此这是nil
。 (doto x f)
在第一个参数位置使用 x
计算f
,然后返回 x
。在这种情况下,将忽略setProperty
返回的nil
,并返回修改后的Properties
实例。
第一个窗体计算方法调用的返回值。
第二个窗体在运行方法调用作为副作用后计算对象实例。