kfk*_*kfk 14 scope return clojure let
我有一些麻烦,想知道如何使用"让"形式.在下面的示例中,我想在本地绑定值"cols",以便稍后在函数中处理它.然而,我注意到的是,如果我使用"let"函数,则sel-opt-tmp函数将返回nil值而不是列表.
(defn sel-opt-tmp []
(let [cols "test"]))
(prn (sel-opt-tmp))
Run Code Online (Sandbox Code Playgroud)
*上面的代码返回一个nil值.
我理解"let"只绑定函数范围内的值,我不知道是否有办法将值传递给let范围.也许有一些我不知道的"回归"?或者这只是糟糕的设计,在这种情况下我根本不应该使用绑定(这往往会创建很长的函数链,尽管很难读)?
Adr*_*uat 21
它返回nil,因为let语句的内容为空(或nil).尝试:
(let [cols "test"] cols)
哪个会返回值cols
.正如seh所说,let语句计算其最后一个子表达式的值.