首頁>Club>
13
回覆列表
  • 1 # 老漁書法

    語法糖,這個詞看上去怪怪的。語法跟糖似乎扯不到一塊去,但,“語法糖”確實是一個堂而皇之的詞進入計算機語言詞彙之中。

    “語法糖”的英文叫Syntactic sugar,直譯,也有意譯成“糖衣語法”,兩個譯法都對。

    英華人彼得·約翰·蘭達(Peter J. Landin)為了增加程式的可讀性,從而減少程式程式碼出錯的機會,發明所謂“語法糖”。換句話說,就是電腦中使用某種語法,能夠讓程式設計師寫的更爽,但對程度語言本身沒有影響,可以提升程式設計師在寫程式時的使用者體驗。

    舉個例子:

    function abc(a,b){

    return a+b;

    }

    語法糖寫法就簡單多了:

    let abc = (a,b) => a+b

    語法糖把function和return之類的關鍵字和某些程式碼給省略了。雖然簡單了,可能產生新問題,上面es6的寫法沒有了自己的this”。

    譬如在C語言裡用a[i]表示*(a+i),用a[i][j]表示*(*(a+i*陣列a第二維的長度)+j),由此可見語法糖不是“現代語言”所獨有,這種寫法簡潔明瞭,容易被人理解。

  • 2 # 晴月浩新雪

    人類之間彼此交流用的是自然語言,而人和機器(計算機)之間的交流需要程式語言。作為人和機器之間的溝通工具,需要考慮三大方面的效率:一個是計算機理解人類的不考慮執行細節的高階命令把他們翻譯成機器可執行的更直接需要考慮很多細節的低階命令的效率;一個是翻譯成機器可執行命令後,在不同型別的機器上具體執行這些命令的效率;另一個則是人實現自己的意圖,用來編寫指揮機器工作的高階命令的工作效率。

    其中,對人類命令的翻譯,既可以在人類編寫命令的階段,也可以在具體程式執行的階段,所以翻譯效率既可以影響工作效率,也可以影響執行效能。而其中的具體情況,就要看不同種類的程式語言的執行時機制的設計。

    所謂語法糖,一般就是針對提高編寫命令工作效率的一些比較小巧的語法設計。這些語法糖本身,基本對於最基礎的執行時效能和核心的程式碼翻譯過程的影響都很小,但它們可以讓人用更少的程式碼來描述清楚自己的具體意圖。

  • 中秋節和大豐收的關聯?
  • 為什麼睡覺多夢?