4
我想在一個地圖元數據添加到不同的項目,但我得到Clojure中的一個錯誤,如果我RRY這跟:用的元數據Clojure的結構添加
{:a
(with-meta
1
{:some-meta-tag "some-meta-data-value"}
)
}
:這可能嗎?
我想在一個地圖元數據添加到不同的項目,但我得到Clojure中的一個錯誤,如果我RRY這跟:用的元數據Clojure的結構添加
{:a
(with-meta
1
{:some-meta-tag "some-meta-data-value"}
)
}
:這可能嗎?
我可能是錯的,但是認爲你不能將元數據到一個數字:
user=> (with-meta 1 {:meta-tag "foo"})
java.lang.ClassCastException: java.lang.Integer cannot be cast to clojure.lang.IObj
從docs
「符號和收藏支持元數據,地圖數據的關於符號或採集。」
這似乎工作:
user=> {:a (with-meta 'foo {:meta-tag "foo"})}
{:a foo}
而且
user=> (meta (:a {:a (with-meta 'foo {:meta-tag "foo"})}))
{:meta-tag "foo"}
感謝,與一組工作,正是我一直在尋找的實際! – Zubair 2011-03-23 18:26:49
正確。內置的Java類型(字符串,數字...)不能有元數據。 – 2011-03-23 23:50:11