究竟什么是语法糖呢
?其實語法糖只是一個概念,大家可能很早就在接觸語法糖了,只是一直不知道這個就是語法糖
百科原話:語法糖(Syntactic sugar),是由Peter J. Landin(和圖靈一樣的天才人物,是他最先發現了Lambda演算,由此而創立了函數式編程)創造的一個詞語,它意指那些沒有給計算機語言添加新功能,而只是對人類來說更“甜蜜”的語法。語法糖往往給程序員提供了更實用的編碼方式,有益于更好的編碼風格,更易讀。不過其并沒有給語言添加什么新東西。
這里有兩點需要注意的:
1語法糖的目的:是為了讓代碼更易讀,更容易讓人理解。
2語法糖的本質:只是一種新的編碼方式,并沒有給語言增加新的功能
比如 C語言中? 如果數組用指針的形式表示某元素的話
?1 a[i]表示?1 *(a+i)?
?
?1 a[i][j]?表示?1 *(*(a+i)+j)??? 這在本質上并沒有給c增加新的功能,但是讀起來卻方便很多
在C#中比如:
?1 public string MyName { get; set; }?
? 表示 1 private string _myName; 2 3 public string MyName 4 5 { 6 7 get { return _myName; } 8 9 set { _myName = value; } 10 11 } 12 13?
using (var stream = new FileStream("", FileMode.Create)) {// do something }表示:
1 var stream = new FileStream("", FileMode.Create); 2 try 3 { 4 // do something 5 } 6 finally 7 { 8 if (stream != null) 9 { 10 stream.Dispose(); 11 } 12 }?
在此需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我帶來方便,是一種便捷的寫法。(貌似每個介紹語法糖的文章都會來這么一句)很多人覺得寫原生的方法時不是效率更高,其實不然,在程序編譯過程中,編譯器已經會幫我們做轉換;而且可以提高開發編碼的效率,在性能上也不會帶來損失。
?
轉載于:https://www.cnblogs.com/jilodream/p/4225080.html
總結
- 上一篇: 连载《一个程序猿的生命周期》-2.城市校
- 下一篇: Karrigell 入门教程