次のようなデータ構造に複数の構成エントリ(柔軟に拡張できる)を保存したいと思います。
(def config [{:host "test", :port 1},{:host "testtest", :port 2}])
後で、その配列内の各ハッシュを反復して処理したいと思います。
Clojureでそれを行う方法を誰かが指摘できますか?
次のようなデータ構造に複数の構成エントリ(柔軟に拡張できる)を保存したいと思います。
(def config [{:host "test", :port 1},{:host "testtest", :port 2}])
後で、その配列内の各ハッシュを反復して処理したいと思います。
Clojureでそれを行う方法を誰かが指摘できますか?
for
ベクトルに格納されている各マップをループするために(またはdoseq
副作用のみが必要な場合は) を使用できます。事前にわかっている場合は、マップの個々のキーをバインドするために分解を使用することもできます。
(def config [{:host "test", :port 1},{:host "testtest", :port 2}])
(for [{h :host p :port} config]
(format "host: %s ; port: %s" h p))
; => ("host: test ; port: 1" "host: testtest ; port: 2")
便利な方法の 1 つは、マップを使用することです。
(map #(print (:host %1)) config)
または単に一般的に
(map my-processing-func config)