Что является лучшим способом получить неизвестный ключ от карты Clojure? Я попробовал это -Получить неизвестный ключ от Clojure Persistent Hash
(key {:a "test"})
, который бросает это -
ClassCastException clojure.lang.PersistenArrayMap cannot be cast to java.util.Map$Entry
Глядя на source code, это делает чувственное
(defn key
"Returns the key of the map entry."
{:added "1.0" :static true}
[^java.util.Map$Entry e]
(. e (getKey)))
Я также попытался this-
(key (java.util.Map$Entry. {:a "test"}))
Что выбрасывает это -
CompilerException java.lang.IllegalArgumentException: No matching ctor found for interface java.util.Map$Entry
Я понимаю, что я могу назвать keys
, а затем вытащить сказал key
из KeySeq
, но мне было интересно, если есть простой способ сделать это с помощью одного вызова функции.
Это a related question с точки зрения взаимодействия. Спасибо за ввод.
Если карта содержит только одну пару, то вектор из двух элементы могут работать лучше: '[: a" test "]' – DaoWen
Это полезно. Я проверяю каждое значение ключа входящего хэша на существующий хеш, чтобы узнать, существует ли ключ, поэтому было бы проще работать с вектором на входящем. Спасибо за примечание. – nrako