(defn explain-defcon-level [exercise-term]
(case exercise-term
:fade-out :you-and-what-army
:double-take :call-me-when-its-important
:round-house :o-rly
:fast-pace :thats-pretty-bad
:cocked-pistol :sirens
:say-what?))
Run Code Online (Sandbox Code Playgroud)
对于这段代码,其他最后一行,我理解它们.它使用关键字来查找值.但最后一行,为什么有一个问号,没有相应的值.需要一些解释.谢谢
这是默认值.say-what?如果没有其他条款匹配,它将返回.问号在这里没有任何意义,因为关键字可能只包含"任何"字符.
见http://clojuredocs.org/clojure.core/case.
单个默认表达式可以跟在子句之后,如果没有子句匹配,则返回其值.如果未提供缺省表达式且没有子句匹配,则抛出IllegalArgumentException.