我正在嘗試為將以下兩個映射作為引數的函式撰寫 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 [ ]}
uj5u.com熱心網友回復:
(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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/447567.html
標籤:测试 clojure 规格 莱宁根 clojure.spec
