2024 Clojure调查问卷中分享您的想法!

欢迎!请查阅关于页面以了解更多如何使用本站的详细信息。

0投票
规范

你好,

从`s/select`形式中能否获得“封闭”生成器
或者使其在Spec 2中成为默认设置?

例如,Wiki中的示例

(ns user
  (:require [clojure.alpha.spec :as s]))

(s/def ::id int?)
(s/def ::first string?)
(s/def ::last string?)
(s/def ::user (s/schema [::id ::first ::last ::addr]))

(s/def ::my-user (s/select ::user [::id]))

(s/exercise ::my-user)

这会产生具有多于所选键的用户的生成器

([#:user{:id 0} #:user{:id 0}]
 [#:user{:addr #:user{:city "1"}, :first "O", :id 0}
  #:user{:addr #:user{:city "1"}, :first "O", :id 0}])

我认为这是`s/schema`为`::user`规范生成的相同数据
我猜想这只是尚未实现。

是否可以支持此功能?

1 答案

0投票

这可能是最终要添加的有用的功能。我认为你可能需要额外的人工来定制生成器才能得到它。

好的,谢谢你的回答。
...