Lua函數(shù)與字符串處理簡(jiǎn)明總結(jié)
函數(shù)的定義是以function關(guān)鍵字開(kāi)始的,后面函數(shù)的名稱(chēng),然后是要傳遞給函數(shù)的參數(shù),如果沒(méi)有參數(shù)傳給函數(shù),仍然需要用()來(lái)表示一個(gè)空的參數(shù)列表,以end關(guān)鍵字結(jié)尾。
function 函數(shù)名()
...
...
...
end
1. 單一參數(shù)
function F_1(var)
print("My website is: " var)
end
參數(shù)var傳遞給了函數(shù),并在函數(shù)中使用,同時(shí),函數(shù)中的參數(shù)是局部變量,在函數(shù)調(diào)用結(jié)束后被收回。
2. 多個(gè)參數(shù)
function F_2(var1, var2)
print("My website is: " var1)
print("QQ群: " var2)
end
傳遞多個(gè)參數(shù),用逗號(hào)隔開(kāi)。
3. 可變參數(shù)
Lua還可以定義不定長(zhǎng)的參數(shù)列表,使用(…)來(lái)代替參數(shù)列表。Lua會(huì)創(chuàng)建一個(gè)局部名稱(chēng)為arg的table,來(lái)保存函數(shù)調(diào)用時(shí)所有傳遞的參數(shù),以及參數(shù)個(gè)數(shù),通過(guò)arg.n來(lái)獲取。
4. 返回值
函數(shù)使用return關(guān)鍵字并跟上變量名來(lái)返回結(jié)果。返回多個(gè)結(jié)果,用逗號(hào)隔開(kāi)。
5. 字符處理函數(shù)string
Lua對(duì)字符處理能力很強(qiáng)大,具有可擴(kuò)展的模式匹配功能和許多使用的字符處理函數(shù)。
5.1 string.len(string)
該函數(shù)告訴字符數(shù)。
> s = 'www.dbjr.com.cn'
> print(string.len(s))
13
5.2 string.sub(string,start,end)
返回指定字符串的子串。start參數(shù)指定起始位置,end指定結(jié)束位置。
> s = 'www.dbjr.com.cn'
> ns = string.sub(s,3,6)
> print(ns)
w.tt
也可以指定start參數(shù)為負(fù)數(shù),那么起始位置將從字符串的最后開(kāi)始計(jì)算。
end參數(shù)可以省略,將返回從start到字符串末尾的子串。
5.3 string.format()
格式化輸出指定字符串。
5.4 string.find(source_str,find_str)
該函數(shù)在source_str中查詢(xún)第一個(gè)符合find_str字符的位置。如果找到了則返回它的開(kāi)始和結(jié)束位置,沒(méi)有找到返回nil
> s="My website: www.dbjr.com.cn"
> 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函數(shù)返回一個(gè)字符串,source_str字符串中匹配pattern的字符都將會(huì)被替換成replacement_str。
> s="My website: www.dbjr.com.cn"
> print(string.gsub(s,'ttlsa','TTLSA'))
My website: www.dbjr.com.cn 1
可以在函數(shù)的最后加一個(gè)可選參數(shù),用來(lái)指定被替換的次數(shù)。
> 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)
遍歷一個(gè)字符串,一旦匹配到指定的字符串就返回該子串。
相關(guān)文章
C語(yǔ)言模塊回調(diào)Lua函數(shù)的兩種方法
這篇文章主要介紹了C語(yǔ)言模塊回調(diào)Lua函數(shù)的兩種方法,本文講解了C保存函數(shù)對(duì)象、C訪問(wèn)Lua全局環(huán)境兩種方法,需要的朋友可以參考下2015-04-04舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu),說(shuō)明都融入到了注釋中,需要的朋友可以參考下2015-07-07用sysbench來(lái)測(cè)試MySQL的性能的教程
這篇文章主要介紹了用sysbench來(lái)測(cè)試MySQL的性能的教程,使用Lua腳本操作,需要的朋友可以參考下2015-04-04Lua中函數(shù)與面向?qū)ο缶幊痰幕A(chǔ)知識(shí)整理
函數(shù)在面對(duì)對(duì)象的編程中又被叫做方法,會(huì)受到作用域的制約,Lua中具有類(lèi)等面向?qū)ο蟮奶匦?接下來(lái)我們就來(lái)看一下Lua中函數(shù)與面向?qū)ο缶幊痰幕A(chǔ)知識(shí)整理2016-06-06Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)類(lèi)型
這篇文章主要介紹了Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)類(lèi)型,本文同時(shí)講解了開(kāi)發(fā)環(huán)境的搭建,需要的朋友可以參考下2014-09-09