[英]What is Clojure spec?
我無法理解clojure的意圖。 規范
它解決了什么樣的問題?
我們為什么要使用它?
spec允許您創建數據和功能的規范。 規范是它們的核心預測(基於現有的Clojure謂詞)和結構,而不是基於類型,正如您在靜態類型語言中看到的那樣。 通過基於謂詞的規范,您可以編寫比大多數類型系統更具表現力並使用與代碼相同的語言的規范。
在函數上定義的規范指定了args的規范,返回值以及args 和 return的函數。 最后一個允許檢查比在大多數類型或合同系統中檢查的更大范圍的事物(容易)。
定義規格后,您可以使用它們:
您可以使用規范來改進開發(通過澄清和記錄您的意圖,捕獲無效調用,並聲明數據有效性),測試(捕獲無效調用,斷言有效性,生成示例數據以及為您的speceded函數生成自動測試)和您的生產(通過使用一致性進行解構)。
此外,Clojure核心對規范的使用將導致更好的錯誤消息,並擴展核心庫使用的開發時間檢查,以便更早地發現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.