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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

lua中的table使用陷阱

2019-11-10 22:34:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

    最近在使用lua開(kāi)發(fā)的過(guò)程中,遇到了一個(gè)由于語(yǔ)言機(jī)制導(dǎo)致的bug,具體表現(xiàn)就是,我的配置文件中存了個(gè)兩個(gè)表項(xiàng),在用lua加載配置文件內(nèi)容之后,返回的表長(zhǎng)度竟然是1,然后導(dǎo)致后面的判斷都出錯(cuò)了,在初次調(diào)試這個(gè)bug的時(shí)候完全是百思不得其解,把配置文件看了又看,確實(shí)有兩個(gè)表項(xiàng)沒(méi)錯(cuò),但是通過(guò)#運(yùn)算符得到的表長(zhǎng)度始終是1,于是我用公司同事寫(xiě)的一個(gè)打印table模塊將返回的table的鍵和值都打印出來(lái)看了一下,于是就發(fā)現(xiàn)問(wèn)題了。

    原來(lái)在lua中,如果我這樣聲明:

local a = {}a[1] = 1a[2] = 2a[4] = 4PRint(#a)那么輸出的結(jié)果就是2,而不是3,這就是比較疑惑的地方了,因?yàn)槲覀兠髅髦辣砝锩婷髅饔腥齻€(gè)元素,但是輸出的表長(zhǎng)度卻是2,這就是因?yàn)?這個(gè)運(yùn)算符只能處理下標(biāo)連續(xù)的table,這里我們聲明的時(shí)候沒(méi)有下標(biāo)為3的元素,所以lua在計(jì)算長(zhǎng)度的時(shí)候就不會(huì)去看不連續(xù)的元素了,這也提醒了我們開(kāi)發(fā)者,對(duì)于#操作符一定要慎重使用,否則因?yàn)檫@種問(wèn)題導(dǎo)致的bug確實(shí)挺難調(diào)的。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南靖县| 荔浦县| 望奎县| 西乡县| 岚皋县| 定州市| 怀仁县| 静乐县| 和龙市| 长子县| 西贡区| 上犹县| 河北区| 和田市| 罗甸县| 民丰县| 鄂温| 临颍县| 嘉祥县| 桃江县| 宜阳县| 个旧市| 壶关县| 南陵县| 岳池县| 玉龙| 承德市| 万源市| 封丘县| 阳城县| 馆陶县| 巴彦县| 南投县| 大庆市| 瑞金市| 怀来县| 齐齐哈尔市| 双城市| 鹤壁市| 博客| 大厂|