DSL構建:領域特定語言

  1. 什麼叫API整潔?

    • 能夠讓讀者清楚的知道在代碼中發生了什麼(選擇良好的名稱和概念)
    • 代碼需要看起來整潔,極少使用浮誇的代碼且不存在冗餘的語法
      在這裏插入圖片描述
  2. 領域特定語言的概念

    • 通用編程語言(解決幾乎所有能被計算機解決的問題);領域特定語言(專注在特定任務,或者說領域上,並放棄與該領域無關的功能)
    • 最常用的DSL語言:SQL & 正則表達式
    • DSL趨向於聲明式(描述了想要的結果並將執行的細節留給瞭解釋它的引擎)
    • 內部DSL : 用通用編程語言編寫的程序的一部分,使用了和通用編程語言完全一致的語法
  3. 帶接收者的lambda
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  4. 使用invoke約定構建更靈活的代碼塊嵌套
    概念:使用與常規方法調用語法不同的,更簡潔的符號,調用有着特殊命名的函數。
    舉例:get,它允許通過下標來訪問一個對象 foo.get(bar) -> foo[bar]
    使用:類如果定義了使用operator修飾符的invoke方法,就可以被當作函數一樣調用
    在這裏插入圖片描述
    注意:lambda除非是內聯的,否則都是被編譯成呢實現函數式接口(Function1等)的類,而這些接口定義了具有對應數量參數的invoke方法
    在這裏插入圖片描述
    DSL中的Invoke約束
    gradle配置模塊依賴

    在這裏插入圖片描述
    在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章