剛接觸lua時間不長,但是確實覺得lua的短小精悍,寫**的時候感覺非常的自由,最重要的是 不會稍不注意間就蹦出來個崩潰提示框。
lua的table非常強大,如果說c語言說一切皆函式, c++說一切皆物件,那麼lua就是一切皆表,(不準確也不接受反駁 哈哈(<*_*>))。
在進入標題內容之前,先來點前奏,大家也可以直接翻到最下面哈
剛接觸lua沒多久主程想將公司遊戲c++中的檢查遮蔽字模組,移植到lua中乙份,交給我搞,五萬多個遮蔽字(詞),在匹配玩家的訊息中有沒有遮蔽字怎麼,應該怎麼做呢,這麼做:
首先,請大家跟上我的節奏往下走
第一步:寫個函式 函式引數是 str
第二步:開局乙個瀟灑的for迴圈,從檔案中讀取遮蔽字,每次讀取一行,然後呢,進入第三步
第三步:string.sub string.rep string.byte string.len string.string...... 只要能用的,拿上來輪一遍,進行匹配和遮蔽字替換*號,然後去倒杯咖啡,回來的時候,應該就匹配出來了,速度嗖嗖的快,p兒非!,然後進入最後一步,第四步
第四步:將**提交到svn,推給主程
五分鐘後,當你揹著包從公司出來的時候,請你淡定,不是你**寫的不好,是主程水平不夠欣賞不了吶。哈哈
開個玩笑,肯定是不能這樣構思的,遊戲中肯定是要考慮效能的,遮蔽字這個模組,要匹配的快的話,肯定要用到一點點演算法的,我使用的是主程推薦的dfa演算法,是雜湊表結構的,這個後面有時間了會寫篇詳細的遮蔽字全部功能的文章,這裡就回歸主題了哈。
剛接觸到lua的table時,有時候就想print一下table裡面的內容,但是很不幸,人家lua沒有這個方法,今天無意間看到了別人寫的乙個print table的**,只是匆匆一眼,就覺得不是我的菜(自己寫的才是自己的菜),然後剛好又有點點時間,就自己動手實現了一下,經測試,還是能將就用的,功能**38行完工
local tabs = 0
local function print(num, data)
print(string.rep(" ", num)..tostring(data))
endfunction printtb(tb, tbname)
if not tb then return end
if tbname then
print(tabs, tbname.." = ")
end
然後測試列印
local tb = },,
func = function()
print("function")
end}--呼叫
printtb(tb, "tb")
輸出結果:
tb =
}func --(this is function)
}
因為一些原因,以上**都是在csdn手工打的,不是從編輯器複製過來的,實際上的輸出,字段順序可能會不一樣,算是乙個bug吧,不過日常使用應該是夠了的,如果大家想要按照順序,lua程式設計這本書裡面又介紹方法,大家可以試一試喲。 列印Lua的Table物件
小夥伴們再也不用為列印lua的table物件而苦惱了,本人曾也苦惱過,哈哈 不過今天剛完成了這個東西,以前在網上搜過列印table的指令碼,但是都感覺很不理想,於是,自己造輪子了 列印的效果,自己感覺還比較慢,不敢私藏,趕緊分享.如有更好的更改,歡迎討論,優化 以下指令碼儲存到檔案 dumptabl...
lua中實現table的列印
剛學lua不久,導師布置的乙個作業,實現乙個能處理table的print evn lua 5.1 function prettystring for key,value in pairs doprettyonestring value endend function prettyonestring ...
Lua語言之table表
table有兩種形式,陣列形式與鍵值對形式。一 table基本用法 1.table基本使用 初始化 table 表名 賦值 陣列形式 newtable 0 beijing 即同陣列一樣改變下標進行賦值 鍵值對形式 newtable2 xian shanxi 遍歷 陣列形式 for key,value...