當前位置:成語大全網 - 書法字典 - 判斷lua中第壹個字符為空。

判斷lua中第壹個字符為空。

項目的腳本lua中經常會有這樣的需求。

1、本地a = {}

2.流程a。

3.判斷A是否為空表。

關於A是否為空表的判斷,我發現有些代碼是這樣做的:

如果a == {}那麽

結果是a == {}總是返回false,這是壹個邏輯錯誤。因為這裏比較的是表a和壹個匿名表的內存地址。

還有壹些代碼可以做到這壹點:

如果table.maxn(a) == 0,則

這樣做是不安全的,除非表的鍵都是數字,沒有哈希部分。

真的要遍歷表,跳出return false才能確定是否為空嗎?至少代碼這麽寫太難看了。

在網上簡單搜索了壹下,發現原來官方手冊已經給出了答案,就是依靠lua內置的next函數。

即,如果next(a) == nil,則

Next實際上是pairs在遍歷表時用來記錄下壹個內容的函數。

最好將其封裝在項目的模塊中,以免在模塊中本地有下壹個函數。

所以封裝後判斷lua表是否為空的功能如下:

函數表_is_empty(t)

return _G.next( t ) ==零

結束