函數的定義是以function關鍵字開始的,后面函數的名稱,然后是要傳遞給函數的參數,如果沒有參數傳給函數,仍然需要用()來表示一個空的參數列表,以end關鍵字結尾。
復制代碼 代碼如下:
function 函數名()
...
...
...
end
1. 單一參數
復制代碼 代碼如下:
function F_1(var)
print("My website is: " var)
end
參數var傳遞給了函數,并在函數中使用,同時,函數中的參數是局部變量,在函數調用結束后被收回。
2. 多個參數
復制代碼 代碼如下:
function F_2(var1, var2)
print("My website is: " var1)
print("QQ群: " var2)
end
傳遞多個參數,用逗號隔開。
3. 可變參數
Lua還可以定義不定長的參數列表,使用(…)來代替參數列表。Lua會創建一個局部名稱為arg的table,來保存函數調用時所有傳遞的參數,以及參數個數,通過arg.n來獲取。
4. 返回值
函數使用return關鍵字并跟上變量名來返回結果。返回多個結果,用逗號隔開。
5. 字符處理函數string
Lua對字符處理能力很強大,具有可擴展的模式匹配功能和許多使用的字符處理函數。
5.1 string.len(string)
該函數告訴字符數。
復制代碼 代碼如下:
> s = 'www.jb51.net'
> print(string.len(s))
13
5.2 string.sub(string,start,end)
返回指定字符串的子串。start參數指定起始位置,end指定結束位置。
復制代碼 代碼如下:
> s = 'www.jb51.net'
> ns = string.sub(s,3,6)
> print(ns)
w.tt
也可以指定start參數為負數,那么起始位置將從字符串的最后開始計算。
end參數可以省略,將返回從start到字符串末尾的子串。
5.3 string.format()
格式化輸出指定字符串。
5.4 string.find(source_str,find_str)
該函數在source_str中查詢第一個符合find_str字符的位置。如果找到了則返回它的開始和結束位置,沒有找到返回nil
復制代碼 代碼如下:
> s="My website: www.jb51.net"
> print(string.find(s,"ttlsa"))
17 21
> print(string.find(s,"w"))
4 4
> print(string.find(s,"xx"))
nil
5.5 string.gsub(source_str, pattern, replacement_str,[num])
string.gsub函數返回一個字符串,source_str字符串中匹配pattern的字符都將會被替換成replacement_str。
復制代碼 代碼如下:
> s="My website: www.jb51.net"
> print(string.gsub(s,'ttlsa','TTLSA'))
My website: www.jb51.net 1
可以在函數的最后加一個可選參數,用來指定被替換的次數。
復制代碼 代碼如下:
> print(string.gsub(s,'w','XXXXXX'))
My XXXXXXebsite: XXXXXXXXXXXXXXXXXX.jb51.net 4
> print(string.gsub(s,'w','XXXXXX',2))
My XXXXXXebsite: XXXXXXww.jb51.net 2
5.6 string.gfind(source_str,pattern)
遍歷一個字符串,一旦匹配到指定的字符串就返回該子串。
您可能感興趣的文章:- Lua中簡單的錯誤處理實例
- Lua中的異常處理pcall、xpcall、debug使用實例
- Lua極簡入門指南(三): loadfile和錯誤處理
- Lua讀取和寫入文件處理例子
- 淺析Lua編程中的異常處理
- lua日志文件處理代碼