(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?))
对于这段代码,其他最后一行,我理解它们。 它使用关键字来查找值。 但最后一行,为什么有一个问号,没有相应的值。 需要一些解释。感谢
答案 0 :(得分:5)
这是默认值。如果没有其他子句匹配,它将返回say-what?
。问号在这里没有任何意义,因为关键字可能只包含“任何”字符。
见http://clojuredocs.org/clojure.core/case。
单身 默认表达式可以遵循子句,其值将是 如果没有子句匹配则返回如果未提供默认表达式 并且没有子句匹配,抛出IllegalArgumentException。