我正在使用多方法提供不同的功能,具体取决于我的项目运行的"模式"(它是一个yada api服务器,应该能够运行:dev,:prod模式等).
我正在使用mount/defstate提供关键字:
(defstate mode :start :dev)
Run Code Online (Sandbox Code Playgroud)
当我发送使用时(constantly mode),我得到错误但是当我使用(fn [& _] mode)它发送时似乎工作.
这两种形式不一样吗?或者评估它们的方式(或时间)是否存在细微差别?
我想学习如何使用overrides与s/gen.
我有一张::parent包含::child地图的地图.父母和孩子都有共同的钥匙.该要求是,按键则有父母和孩子之间,例如相同的值{:a 1 :b 2 :child {:a 1 :b 2}.我知道这似乎是多余的,但问题领域需要它.
下面的代码生成示例,但不满足上述要求.
有没有办法在两个位置使用相同的生成值?
(ns blah
(:require [clojure.spec.alpha :as s]
[clojure.spec.gen.alpha :as gen]))
(s/def ::a (s/int-in 1 5))
(s/def ::b (s/int-in 1 6))
(s/def ::child
(s/keys :req-un [::a ::b]))
(defn- parent-gen []
(let [a #(s/gen ::a)
b #(s/gen ::b)]
(s/gen ::parent-nogen
; overrides map follows
{::a a ::b b
::child #(s/gen ::child
; another overrides map
{::a a …Run Code Online (Sandbox Code Playgroud)