8
我想我的程序行爲不同的基本類型和它們的包裝類之間,例如:如何在原始類型上分派multimethod?
(defmulti try-type class)
(defmethod try-type Integer [arg]
(println "Integer"))
(defmethod try-type Integer/TYPE [arg]
(println "int"))
但它不工作,雖然我嘗試整數和int都
user=> (try-type (.intValue (int 2)))
Integer
nil
user=> (try-type (int 2))
Integer
nil
那麼,有可能在原始類型上分派multimethod?
====== EDIT ======
我被包裹一個谷歌番石榴成Clojure的。它有一個原始庫,如布爾,Dobules,Ints等。他們有一些共同的方法,所以我想嘗試multimethod。
你能解釋你爲什麼要這樣做嗎?目前在基元上調度是不可能的,但是可能有一個很好的方法來實現相同的目標(谷歌「XY問題」) – mikera 2012-07-30 00:46:03
@mikera編輯! – qiuxiafei 2012-07-30 02:01:18