语法糖

语法糖（）是由英国计算机科学家彼得·蘭丁发明的一个术语，指计算机语言中添加的某种语法，这种语法对语言的功能没有影响，但是更方便程序员使用。语法糖让程序更加简洁，有更高的可读性。

举例来说，许多程序语言提供专门的语法来对数组中的元素进行引用和更新。从理论上来讲，一个数组元素的引用涉及到两个参数：数组和下标向量，比如这样的表达式：get_array(Array, vector(i, j))。然而，许多语言支持这样直接引用：Array[i, j]。同理，数组元素的更新涉及到三个参数：set_array(Array, vector(i, j), value)，但是很多语言提供直接赋值：Array[i, j] = value。

語法糖的例子

for循环 
一个例子是C語言中的for循环：

for (i = 0; i < 10; i++) {
    // P
}

其效果在不考虑for循环中的continue语句时和以下的while循环是一樣的，其中P是循环要處理的主體。

i = 0;
while (i < 10) {
    // P
    i++;
}

中置表示法 
Haskell雖然是函數程式語言，但它提供了這種「中置表示法」的語法，讓程式更容易撰寫，也比較容易閱讀。

运算符重载 
C++提供了运算符重载，可以把運算符當作函式來寫，當使用運算子就等同於使用該函式，讓程式更容易撰寫，也比較容易閱讀。

關聯陣列 
Javascript和Lua中物件的「鍵」如果不使用底線以外的符號、數字不做開頭時可以使用物件成員方式來取的「值」。若不符合上述規則僅能使用陣列索引方式取得「值」。

以Javascript來舉例：
let a = { 'abc': 5, '12w': 6, '>': 7, '_': 8 };

console.log(a.abc);     //因為「鍵」符合規則，所以可以直接使用物件成員方式來取得「值」。
console.log(a["abc"]);  //也能用陣列索引的方式取得「值」。
console.log(a["12w"]);  //因為「鍵」是數字開頭，所以僅能以陣列索引方式取得「值」。
console.log(a[">"]);    //因為「鍵」有使用到符號，所以僅能以陣列索引方式取得「值」。
console.log(a._);       //雖然「鍵」有使用到符號，但是因為Javascript中底線可以當作變數名稱，所以可以使用物件成員方式來取得「值」。
差異在於如果使用陣列索引的話「鍵」需要加上「中括號」和「字串引號」，但是物件成員只要加上「小數點」能讓程式碼看起來更加簡潔。

衍生詞語

语法盐 

语法盐（）指的是不容易写出坏代码的语法特性。这些特性强迫程序员做出一些基本不用于描述程序行为，而是用来证明他们知道自己在做什么的额外举动。

语法糖精 
语法糖精（），或者说语法糖浆（），指的是未能让编程更加方便的附加语法。

註釋

參考文獻

 
 
 
 
 , reprinted in 
 

程序设计语言语法
源代码