如何在Clojure中为函数参数创建默认值

我来这里:

(defn string->integer [str & [base]]
  (Integer/parseInt str (if (nil? base) 10 base)))

(string->integer "10")
(string->integer "FF" 16)

但它必须是一个更好的方法来做到这一点。

最佳答案
如果签名在语义上不同,则函数可以具有多个签名。您可以使用它提供默认值。

(defn string->integer 
  ([s] (string->integer s 10))
  ([s base] (Integer/parseInt s base)))

注意,假设假和假设两者都被认为是非值,(如果(nil≤base)10基数)可以缩短为(如果基本为10)或进一步为(或基数为10)。

转载注明原文:如何在Clojure中为函数参数创建默认值 - 代码日志