具有不确定键数的映射向量的Clojure规范



我正试图为一个函数编写一个clojure规范,该规范将以下两个映射作为参数。

{1 BL0-MD0-SU, 0 BL0-SM0-SU}
{0 [https://gateway.pinata.cloud/ipfs/QmcLjsUDHVuy8GPUPmj4ZdGa3FWTfGnsKhWZ4dxqUaGGXk/doge.jpg ], 1 [https://gateway.pinata.cloud/ipfs/QmcLjsUDHVuy8GPUPmj4ZdGa3FWTfGnsKhWZ4dxqUaGGXk/doge.jpg ]}

每个地图的长度可能不同,这取决于用户希望购买的T恤数量。我不确定如何为此编写规范,因为它允许每个映射中的键和值的数量不同。此外,如果我可以断言每个映射都包含相同数量的键,那也会很有用。

编辑:

当以下内容通过时,规范也应通过:

{1 BL0-MD0-SU, 0 BL0-SM0-SU, 2 BL0-LG0-SU}
{0 [https://gateway.pinata.cloud/ipfs/QmcLjsUDHVuy8GPUPmj4ZdGa3FWTfGnsKhWZ4dxqUaGGXk/doge.jpg ], 1 [https://gateway.pinata.cloud/ipfs/QmcLjsUDHVuy8GPUPmj4ZdGa3FWTfGnsKhWZ4dxqUaGGXk/doge.jpg ], 2 [ ]}
(s/def ::arg1 (s/map-of long? string?))
(s/def ::arg2 (s/map-of long? vector?))
(s/def ::args (s/and (s/cat :arg1 ::arg1 :arg2 ::arg2)
(fn [{:keys [arg1 arg2]}]
(= (count arg1) (count arg2)))))

如果您需要将此规范附加到函数,您可以在此处学习如何执行:https://clojure.org/guides/spec#_specing_functions

相关内容

  • 没有找到相关文章

最新更新