轉 關於lua table是否為空的判斷

2021-08-03 21:26:01 字數 654 閱讀 9138

在專案的指令碼lua中經常有這樣的需求,

1、local a = {}

2、對a進行處理

3、對a是否為空表進行判斷

關於對a是否為空表的判斷,我發現有些**如此做:

if a == {} then

這樣的結果就是a == {}永遠返回false,是乙個邏輯錯誤。因為這裡比較的是table a和乙個匿名table的記憶體位址。

也有些**如此做:

if table.maxn(a) == 0 then

這樣做也不保險,除非table的key都是數字,而沒有hash部分。

難道真的要遍歷table發現有東西就return false跳出才能斷定它是否為空嗎?這樣寫至少**太難看. 

網上小搜了一下,發現原來官方手冊裡早已經給了答案,那就是靠lua內建的next函式

即如此用:if next(a) == nil then

next其實就是pairs遍歷table時用來取下乙個內容的函式.

在專案的module中最好封裝一下,免得module本地也有next函式

於是封裝後判斷的lua table是否為空的函式如下:

function table_is_empty(t)

return _g.next( t ) == nil

end原位址 

JQuery判斷是否為空

有如下三種判斷 var a val if a null a undefined a 這裡解釋一下null與undefined和 的區別 null 空物件 不是物件,轉為數值為0 undefined 全域性物件window的乙個特殊屬性.undefined表示 缺少值 就是此處應該有乙個值,但是還沒有...

python判斷是否為空

python語言與其他語言不同,沒有null型別,空用none來表示,但同時需要注意,none是有資料型別的,type為 nonetype 因此python中判斷物件為非空時需要注意物件型別 三種主要的寫法有 當x為none,false,空字串 0,空列表,空字典 空元組 這些時,not x為真 t...

jquery textarea 判斷是否為空

因為不熟悉jquery 就直接上手開始開發jquery mobile 所以遇到了很多問題 在驗證表單 判斷textarea 是否為空時候怎麼都判斷不了。後來覺得應該過濾 textarea 中的空格 和html 所以找了以前的過濾 貼一下 希望別人遇到此類問題時能夠快速解決。function isnu...