3K+ 次檢視
從 C 呼叫 Lua 函式需要一系列步驟並掌握 Lua 庫函式。Lua 提供了幾個庫函式,當我們想要從 C 呼叫 Lua 函式或反之亦然時可以使用這些函式。一些最常用的從 C 呼叫 Lua 函式的 Lua 庫函式是:luaL_dofile(L, "myFile.lua");lua_getglobal(L, "add");lua_pushnumber(L, a);等等。當我們從 C 呼叫 Lua 函式時,我們將使用這些函式。第一步是關閉 Lua 直譯器,為此我們需要在 C 中編寫程式碼。示例考慮… 閱讀更多
271 次檢視
Lua 提供了自動垃圾回收,這對於提供安全的記憶體管理非常有幫助。它基本上意味著您無需擔心新建立的物件或如何分配記憶體。Lua 正在執行垃圾回收器以收集所有死亡物件(即在 Lua 中無法訪問的物件)以執行自動記憶體管理。Lua 還為我們提供了不同的函式,我們可以使用這些函式與垃圾回收器互動,這些函式是:collectgarbage ( "collect") - 返回一個數字,表示收集器是否執行了完整的垃圾回收週期。collectgarbage ( "count") - 返回… 閱讀更多
1K+ 次檢視
複製表意味著我們希望一個表中存在的所有值或對都存在於另一個表中。在 Lua 中,沒有我們可以用來建立此類表的標準庫函式,但我們可以建立自己的函式來做到這一點。讓我們在 Lua 中建立一個函式,該函式將一個表作為引數,並建立一個新表,該表將是作為引數傳遞給函式的表的精確副本。示例考慮以下示例作為參考:- 即時演示a = {} a["name"] = "mukul" a["age"] = 23 a["isWorking"] = … 閱讀更多
231 次檢視
我們知道 JavaScript 和 Lua 的流行程度和用例之間存在巨大差距。除了流行程度和用例方面的差距之外,這些語言在程式碼級別上也存在許多差異。下表突出顯示了 JavaScript 和 Lua 之間的一些最顯著差異。關鍵JavaScriptLua比較時的隱式轉換JavaScript 在比較任何兩個物件時(使用 == 或 != 比較運算子)會進行隱式轉換。Lua 在使用比較運算子時不會在型別之間轉換。運算子優先順序在 JavaScript 中,==、===、!= 和 !== 運算子的優先順序低於 >、>=、
5K+ 次檢視
Lua 中的 .(點) 運算子用於呼叫物件的函式,它是 Lua 中廣泛使用的運算子。Lua 中的 :(冒號) 運算子用於當您想要將一個不可見的引數傳遞給您正在呼叫的物件的函式時。讓我們考慮一個示例,其中我們將有一個包含兩個函式的物件,我們將嘗試訪問這些函式,首先使用點運算子,其次使用冒號運算子。示例考慮以下示例:- 即時演示returnX = {foo = function(x, y) return x … 閱讀更多
7K+ 次檢視
我們可以使用一個簡單的函式將兩個表連線在一起,但在 Lua 中,不存在用於此目的的庫函式。在 Lua 中連線兩個表的方法有很多種。我寫了兩種方法,在複雜度方面它們的表現大致相同。第一種方法如下:function TableConcat(t1, t2) for i=1, #t2 do t1[#t1+1] = t2[i] end return t1 end另一種實現相同目標的方法是使用 ipairs() 函式。示例考慮以下示例:for _, v in ipairs(t2) do … 閱讀更多
2K+ 次檢視
字串連線是我們將兩個或多個字串組合在一起的過程,在大多數程式語言中,這可以透過使用賦值運算子來完成。在 Lua 中,賦值運算子連線不起作用。示例考慮以下示例:- 即時演示str1 = "tutorials" str2 = "point" 將丟擲一個錯誤 s = str1 + str2 print(s)輸出輸入:7:嘗試將“字串”與“字串”相加因此,最直接的方法是使用連線關鍵字,它由 ..(兩個點)表示。讓我們考慮一些 Lua 中連線關鍵字的示例。示例考慮… 閱讀更多
在 Lua 中處理命令列引數是任何程式語言的關鍵特性之一。在 Lua 中,命令列引數儲存在一個名為 args 的表中,我們可以使用索引提取所需的任何特定命令列引數。語法lua [選項] [指令碼 [引數]]選項是:-e stat- 執行字串 stat;-l mod- “需要” mod;-i- 在執行指令碼後進入互動模式;-v- 列印版本資訊;-- - 停止處理選項;-- 執行 stdin 作為檔案並停止處理選項。示例讓我們考慮一個示例,我們將以互動模式開啟 Lua shell,並將指令碼作為 dev/null 傳遞,然後我們… 閱讀更多
在縮排方面,Lua 程式碼不像 Python。因此,您編寫的多數程式碼即使換行也能正常工作,並且您不一定需要將巢狀程式碼縮排到某個製表符大小。Lua 中的程式碼縮排更多的是為了使程式碼看起來更好、更易讀。如果您的整個程式碼都在一行上,或者更糟糕的是,如果它像多行一樣,那麼恐怕您的程式碼的可讀性很差。雖然我們可以使用程式碼編輯器的縮排包來進行縮排… 閱讀更多
4K+ 次檢視
通常情況下,陣列的大小是在 nil 之前陣列中存在的元素數量。在許多情況下,nil 不允許在陣列中,但對於某些應用程式來說,在陣列中包含 nil 不是問題。如果我們在陣列中允許 nil 值,那麼我們必須有一些函式來顯式設定陣列的大小。Lua 為我們提供了兩個函式來運算元組的大小,它們是:setngetnsetn 函式用於顯式設定陣列的大小,並且… 閱讀更多