我有例如-m 4 -y 2016
并希望最终获得[["-m" 4] ["-y" 2016]]
或一个地图。我如何将它们分成对?
将它们分成对,使用分区:
dev=> (partition 2 ["-m" 4 "-y" 2016])
(("-m" 4) ("-y" 2016))
要制作地图,请对其应用哈希映射:
dev=> (apply hash-map ["-m" 4 "-y" 2016])
{"-y" 2016, "-m" 4}
有一个特殊的库。
(let [cli-options [["-m" "--max MAX" "M description"
:parse-fn #(Integer/parseInt %)]
["-y" "--year YEAR" "Year"
:parse-fn #(Integer/parseInt %)]]]
(-> "-m 4 -y 2016"
(str/split #"s")
(parse-opts cli-options)))
=>
{:options {:max 4, :year 2016},
:arguments [],
:summary " -m, --max MAX M descriptionn-y, --year YEAR Year",
:errors nil}