lua中判斷首字元為空,lua中如果函式返回值是nil如何判斷

時間 2021-09-05 17:55:44

1樓:智者總要千慮

在專案的指令碼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 ) == nilend

2樓:匿名使用者

用字串的匹配就可以達到這個效果

local s = " test string"

print(s:match("^%s") ~= nil)

lua中如果函式返回值是nil如何判斷

3樓:匿名使用者

lua中 nil和false返回值都是假

所以 偷懶點 可以這樣 但是這樣 false也會被允許function r()

return nil

endif(r()) then .....end當然 嚴格要求nil 得這麼寫

if(r() == nil) then ... end

lua 怎麼判斷unicode字元範圍 50

4樓:多元老人

採用本老人設計bai的《五龍字元

集du識別法》可以快速確定

zhi系統字符集,dao從而獲悉支援專哪些字元。檢測屬專用字元:【龍龖龘?龍⃢】,只要把【】內的字元複製貼上到待測試的文字或網頁上即可根據下述說明確定是何字符集。

說明見下**:

1、lua語言 怎麼檢測 當前字元 是否 存在指定文字中 10

5樓:永恆

用find函式。

string.find()函式用於在一個給定的目標字串中搜尋一個模式。

最簡單的模式就是一個單詞,它只會匹配與自己完全相同的拷貝。

當find找到一個模式後,它會返回兩個值:匹配到的起始索引和結尾索引;

如果沒有找到任何匹配,它就返回nil。

示例**:

local str = "hello world"

local i, j = string.find(str, "hello")

-- 返回hello在str中的起始位置和終止位置print(i, j)

string.find函式還具有一個可選的第三個引數,它是一個索引,告訴函式應該從目標字串的哪個位置開始搜尋。

lua 登入驗證 怎麼判斷字串不含非法字元

6樓:匿名使用者

把要判斷的字元或字元正規表示式(注意格式轉義)放到table中,用string.find一個個查詢。

求大神!!!!lua怎麼用if判斷返回的字串是不是***,如果是就用while迴圈繼續做,不是就結束!

7樓:太陽神

用 == 操作符:

while str == *** do

....end

8樓:匿名使用者

strcmp(str1, str2)

這個函式是比較字串的

lua指令碼中怎麼對比字串

9樓:蘭婷集需

lua 字串的bai比較 是檢du測字串的hash是否一樣來判斷兩個zhi字串是否相等

dao測試**如回下:

local a = "dfadfafdasf"

local b = "dfadfafdasf"

print(a==b)

lua指令碼還可以對答utf8字串過濾中文字元,實現**如下:

local _, count = string.gsub(str, "[^\128-\193]", "")

for uchar in string.gfind(str, "[%z\1-\127\194-\244][\128-\191]*") do

tab[#tab+1] = uchar

end,

10樓:匿名使用者

不需要 直接用全等對比就好了

local a = "abc"

local b = "def"

print(a == b)

LUA中table的方法,LUA 中table的方法 30

在lua中,table 表 是主要的資料結構 事實上也僅此一種 陣列則是table的一種特殊應用。table的介紹 lua中,有預載入的table庫。在這個table庫中包含了如下函式 setn insert getn foreachi maxn foreach concat sort remove...

VB中得為空判斷,VB 中得為空判斷

悠悠周郎 isnothing 用於判斷某個物件是否尚未賦值。例如 dim 物件 as object,此時 isnothing 物件 true。dbnull 指示 object 缺少的或不存在的資料。dbnull 與 nothing 不同,後者指示變數尚未初始化。dbnull 也與零長度字串不同 零長...

Lua裡有沒有邏輯運算中的並和或的運算

lua有邏輯運算,具體參考如下 比較運算子 分別表示 小於,大於,不大於,不小於,相等,不相等。所有這些操作符總是返回true或false。對於table,function和userdata型別的資料,只有 和 可以用。相等表示兩個變數引用的是同一個資料。比如 a b a print a b,a b...