我在计算如何使用“let”表单时遇到了一些麻烦。在下面的例子中,我想在本地绑定值“cols”,以便稍后在函数中使用它。然而,我注意到的是,如果我使用“let”,函数sel-opt-tmp将返回一个零值而不是列表。Clojure:让示波器和函数返回值
(defn sel-opt-tmp []
(let [cols "test"]))
(prn (sel-opt-tmp))
*上面的代码返回一个零值。
我明白,“让”只绑定一个函数范围内的值,我不知道是否有一种方法可以将值传递给let范围。也许有一些我不知道的“回归”?或者这仅仅是糟糕的设计,在这种情况下我不应该使用绑定(这往往会产生很长的功能链,虽然很难阅读)。
'let'形式隐式返回它包含的最后一个表达式,在你的情况下它是不可见的'nil'。您需要在'let'表单的主体中使用'cols'来让它返回。 – seh
'“let”只绑定函数范围内的值 - 这不完全正确。 'let's可以出现在任何地方,绑定名称的范围是'let'表达式。 –