7
A
答えて
10
(atom {})
clojure.lang.IRefインタフェースを実装する抽象クラスclojure.lang.ARefを拡張タイプclojure.lang.Atom
のオブジェクトを作成します。 IRefはARefに実装されたgetWatchesメソッドを宣言します。
(def a (atom {}))
(add-watch a :watcher println)
(println (-> a .getWatches keys))
clojure.core
がget-watches
を持っていないという奇妙です:
はここソリューションです。 add-watch
実装をミラーリング我々が得る:
(defn get-watches
"Returns list of keys corresponding to watchers of the reference."
[^clojure.lang.IRef reference]
(keys (.getWatches reference)))
2
(:watches (bean a))
または
(keys (:watches (bean a)))
2
イワンの答えは、JVM上でClojureのための素晴らしいです。これはClojureScriptでの操作方法です:
(keys (.-watches a))
関連する問題
- 1. Emacs Clojureモードのタブインデントが巨大な場合があります
- 2. clojure call関数の結果がループ内にある場合
- 3. PHP、エラーがあった場合に提出しない
- 4. 新しいリクエストがあった場合にリクエストをキャンセルする
- 5. 変更があった場合にデータの保存を促す
- 6. 変更があった場合にngModelChangeを変更する
- 7. Mapbox GeoJSONが間違った位置にある場合
- 8. 「エラーがサブになった場合」
- 9. 予測に合っている条件がある場合
- 10. Clojure/Noir:HTTPSを強制し、要求がhttp://からhttps://にリダイレクトされた場合
- 11. マングースコレクションデータがある場合はそれ以外の場合はアップデート
- 12. 私はスタイルで合成された画像がある場合
- 13. 衝突があった場合に画像を消す方法は?
- 14. 新しい投稿があった場合はメールで通知する
- 15. 私のjavascriptを破った場合は
- 16. のClojureは、Javaで開発している場合、マルチアリティ
- 17. は、条件が満たされた場合、またはエラーが起こった
- 18. 複数のシートにまたがって瞳孔検出がある場合
- 19. Clojureには何がありますか?
- 20. 隣り合った要素がある
- 21. 配列がある場合
- 22. リフレッシュボタンがある場合
- 23. Javascript Assignment要素がある場合は
- 24. Java/Swingのレイヤーラベルがある場合は
- 25. 要素がデータである場合は
- 26. 配列がある場合は配列
- 27. VB.Net - TextBox1テキストボックスがある場合は
- 28. ファイルがある場合はインクルード
- 29. 行がある場合は更新
- 30. VS 2015 R2がクラッシュする - たった1行のコードの後にある場合があります