我对这种行为有点疑惑if.以下代码工作正常:
(if true
(let [x "whatever"]
(println "TRUE 1")
(println "TRUE 2")))
Run Code Online (Sandbox Code Playgroud)
收益:
TRUE 1
TRUE 2
nil
Run Code Online (Sandbox Code Playgroud)
但是如果let表达式被删除:
(if true
(
(println "TRUE 1")
(println "TRUE 2")))
Run Code Online (Sandbox Code Playgroud)
它还返回一个NullPointerException:
TRUE 1
TRUE 2
NullPointerException user/eval8051 (NO_SOURCE_FILE:4)
Run Code Online (Sandbox Code Playgroud)
我怀疑是因为println回归了nil.但是,为什么它在let引入时会起作用?有一个更好的方法吗?
clojure ×1