我来自沉重的javascript背景和学习clojure.
在js我们可以做;
var aVariable; //evaluates as falsy
var x = aVariable || 'my Default String';
Run Code Online (Sandbox Code Playgroud)
你怎么在clojure中这样做?
目前我正在阅读来自compojure的请求地图中的标题.
(let [x-forwarded-for (get-in request [:headers "x-forwarded-for"])]
(println x-forwarded-for)
)
Run Code Online (Sandbox Code Playgroud)
在'x-forwarded-for'标头不存在的情况下,x-forwarded-for值为nil.测试nil然后将x-forwarded-for重新分配给另一个值的正确方法是什么?
pri*_*ing 11
你可以使用内置的or:
(let [x-forwarded-for (or (get-in request [:headers "x-forwarded-for"]) "my Default String")]
(println x-forwarded-for))
Run Code Online (Sandbox Code Playgroud)
如果是第一个子句nil,它将使用第二个.
幸运的是,该get-in函数具有not-found完全针对此用例的参数:
(let [x-forwarded-for (get-in request [:headers "x-forwarded-for"]
"default value")]
(println x-forwarded-for))
Run Code Online (Sandbox Code Playgroud)
一般来说,你可以使用or@prismofeverything说.
| 归档时间: |
|
| 查看次数: |
1129 次 |
| 最近记录: |