最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何理解lua的語(yǔ)法糖

2022-05-09 10:11 作者:只有神知道的歌詞特效  | 我要投稿

來(lái)源鏈接:https://zhuanlan.zhihu.com/p/285825344

這篇文章源于我看到某乎某用戶覺(jué)得lua語(yǔ)法“違反直覺(jué)”,我覺(jué)得有這感覺(jué)源于lua的語(yǔ)法糖,如果流于表面的把這些加糖后的語(yǔ)法往C,C#,java等語(yǔ)義上套確實(shí)容易產(chǎn)生誤解。另外xLua群上也經(jīng)常會(huì)問(wèn)些因?yàn)閷?duì)語(yǔ)法理解問(wèn)題導(dǎo)致問(wèn)題。

lua里頭一些很常見(jiàn)的語(yǔ)法,其實(shí)都是加了糖。比如這個(gè):

去糖后其實(shí)是這樣的,

去糖后更清晰了,a是table,table本質(zhì)上就是一個(gè)hashmap,我們往一個(gè)hashmap里頭設(shè)置了鍵值對(duì)。

再看這個(gè):

第一次去糖后是這樣:

再按照文章開(kāi)篇第一個(gè)語(yǔ)法糖再去一次糖,就變成了

所以,仍然是對(duì)一個(gè)hashmap設(shè)置鍵值對(duì),只不過(guò)值相對(duì)于c/c#/java比較特殊,這是個(gè)function(準(zhǔn)確來(lái)說(shuō)是一個(gè)closure),因?yàn)閘ua里頭函數(shù)是first-class的,可以作為一個(gè)普通值來(lái)處理。

再來(lái)

一次脫糖

二次脫糖就比較復(fù)雜,分兩種情況:前面有l(wèi)ocal變量add,前面沒(méi)有。

前面有l(wèi)ocal add,其實(shí)就是對(duì)add變量的一次賦值,如果沒(méi)有,還要脫糖:

其實(shí)就是對(duì)一個(gè)特殊的table設(shè)置鍵值對(duì)。

跟著來(lái)一個(gè)導(dǎo)致很多人踩坑的冒號(hào)語(yǔ)法糖:

脫糖后是這樣的

和冒號(hào)語(yǔ)法糖相關(guān)的語(yǔ)法糖

一次脫糖后是這樣

注意,你按脫糖后的寫(xiě)法,那個(gè)self你寫(xiě)啥名字都可以。


如何理解lua的語(yǔ)法糖的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
莱芜市| 达拉特旗| 安图县| 胶州市| 黄平县| 靖宇县| 天长市| 永胜县| 祁连县| 双峰县| 黑山县| 准格尔旗| 东兴市| 收藏| 马边| 枞阳县| 汕头市| 同仁县| 尉犁县| 乌恰县| 通江县| 铁岭市| 依兰县| 婺源县| 莫力| 南丰县| 淮滨县| 务川| 休宁县| 舒兰市| 登封市| 理塘县| 重庆市| 镇康县| 思茅市| 蛟河市| 石渠县| 阳城县| 磴口县| 边坝县| 翁源县|