일련의 문자열 모음을 나타내고 싶습니다. 내부 컬렉션은 모두 길이가 같아야합니다.
내 초기 시도는 다음과 같습니다.
(s/def ::stuff (s/every (s/coll-of string?) :min-count 1))
그러나 이것을 연습하면 다양한 길이의 내부 컬렉션을 얻습니다.
길이가 모두 동일해야 함을 지정하는 선언적 방법이 있습니까? 아니면 사양에 대한 사용자 지정 생성기 함수에서만 지정할 수 있습니까?
사양을 다음과 같이 명시합니다.
(s/def ::stuff
(s/and
(s/every (s/coll-of string?))
#(or (empty? %)
(apply = (map count %)))))
그것은 아마도 gen이 될 것이지만, 당신이 얻게 될 대부분의 것은 빈 컬렉션이거나 하나의 요소의 컬렉션이 될 것입니다. 둘 다 길이 제약을 사소하게 전달합니다. 이를 위해서는 사용자 지정 세대가 필요합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다