lua學習筆記

2022-03-06 02:25:51 字數 902 閱讀 9546

工作需要,上週對lua趕進度似地學習了一遍,主要參考《lua中文教程》一書,中間參考一些《lua遊戲開發實踐》,首先說說這兩本書,後者不適合初學,裡面是對乙個遊戲指令碼系統進行粗略的介紹,lua語言本身的東西介紹的比較少,前者是比較基礎的書,不過可能自己筆記愚笨,lua的環境配置折騰了半天,後面找到了lua_windows的安裝版本,才解決換台電腦就滿腦子的噁心。lua語言主要面向指令碼,通過配置來實現系統的靈活性,現在也有很多遊戲核心採用c/c++實現,邏輯部分採用lua或者其他指令碼語言,因為邏輯層對遊戲速度的影響可以忽略不及,但是帶來的開發效率提高可能更加顯著, lua的學習,這次沒有做什麼筆記,講講自己大致的講解吧。

lua完全用c語言來實現,效率上還是有保障的,學習lua主要由一下幾方面:

(1)lua語法:

資料型別:nil,boolen,number,string , table,userdata,function

語法:迴圈,判斷,邏輯操作:邏輯操作中and和or的不同,迴圈中local的使用,判斷中nil型別

(2)lua表:包括表的遍歷(泛型),metatable (很重要,lua類物件導向的實現,表之間操作,packages的實現都是基於該功能)

(3)lua函式:lua中函式是第一類資料型別,可以作為引數,類似於c語言的函式指標,不過使用起來很強大,注意閉包的概念

(4)lua中c-api的使用:這是lua作為指令碼語言的基本,和c互動。lua和c的衝突主要集中在動與靜的區別,所以對lua棧的理解是使用c-api的基礎,不然真的很難折騰明白;需要理解檔案載入的問題。

c語言呼叫lua函式的過程相對簡單一些,lua呼叫c語言中的函式如果通過類庫來實現覺得就很糾結,不過工作中中有很多方法處理這個問題,比如第三方庫luabind,tolua++等。不過看書的過程中思考比較多是指令碼在使用過程中對錯誤處理的定位問題,這方面可以參考雲風的部落格哈。

Lua學習筆記 lua堆疊

首先了解一下c 與lua之間的通訊 假設在乙個lua檔案中有如下定義 hello.lua檔案 請注意紅色數字,代表通訊順序 1 c 想獲取lua的myname字串的值,所以它把myname放到lua堆疊 棧頂 以便lua能看到 2 lua從堆疊 棧頂 中獲取myname,此時棧頂再次變為空 3 lu...

lua學習筆記

近日時間比較充裕,學習一下lua語言,順便寫下筆記,方便以後加深學習。c c 呼叫lua動態庫及標頭檔案位址 用於c c 嵌入lua指令碼解析 也可以到或找適合自己的版本。一 hello world 哈哈,先使用經典的hello world帶進門 1.在 執行 鍵入cmd開啟dos視窗,並將當前目錄...

Lua 學習筆記

1 關於table lua 中的 table 是python 中的 list 和 dict 的混合體。t 相當於 t 簡單的看,實際上完全相當於 python 中的 dict 不過實際對於鍵為整數的,是放在 list 中的,方便快速索引。當然基於節省記憶體的考量,對於跳躍的大整數鍵,依然是放在 di...