国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

lua中的table使用陷阱

2019-11-10 19:29:40
字體:
來源:轉載
供稿:網友

    最近在使用lua開發的過程中,遇到了一個由于語言機制導致的bug,具體表現就是,我的配置文件中存了個兩個表項,在用lua加載配置文件內容之后,返回的表長度竟然是1,然后導致后面的判斷都出錯了,在初次調試這個bug的時候完全是百思不得其解,把配置文件看了又看,確實有兩個表項沒錯,但是通過#運算符得到的表長度始終是1,于是我用公司同事寫的一個打印table模塊將返回的table的鍵和值都打印出來看了一下,于是就發現問題了。

    原來在lua中,如果我這樣聲明:

local a = {}a[1] = 1a[2] = 2a[4] = 4PRint(#a)那么輸出的結果就是2,而不是3,這就是比較疑惑的地方了,因為我們明明知道表里面明明有三個元素,但是輸出的表長度卻是2,這就是因為#這個運算符只能處理下標連續的table,這里我們聲明的時候沒有下標為3的元素,所以lua在計算長度的時候就不會去看不連續的元素了,這也提醒了我們開發者,對于#操作符一定要慎重使用,否則因為這種問題導致的bug確實挺難調的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 楚雄市| 克拉玛依市| 乌拉特中旗| 桃源县| 永安市| 上思县| 治多县| 黄大仙区| 甘洛县| 闸北区| 朝阳市| 滁州市| 抚顺县| 惠来县| 武冈市| 高阳县| 淅川县| 始兴县| 镇宁| 洛浦县| 行唐县| 汉阴县| 天祝| 新化县| 宁武县| 翁牛特旗| 珲春市| 芦山县| 临城县| 抚松县| 泰州市| 浙江省| 南汇区| 同江市| 株洲县| 古交市| 胶州市| 西贡区| 西乌珠穆沁旗| 辽阳县| 黔南|