當前位置:首頁 » 網頁前端 » lua腳本可以跨語言調用嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

lua腳本可以跨語言調用嗎

發布時間: 2022-05-17 20:24:09

㈠ Lua能作為一個通用、獨立的語言使用嗎

可以獨立運行,但是不能當做通用語言來使用。腳本語言畢竟是腳本語言,一般系統項目需要做很多東西,腳本程序(lua)根本完成不了..腳本語言與通用語言是不一樣的,他們的存在各有各的用處與目的,不能相互替代的。

㈡ lua腳本語言環境與全局環境以及錯誤處理的理解

2.2 – 環境與全局環境
後面在 §3.2 以及 §3.3.3 會討論, 引用一個叫 var 的自由名字(指在任何層級都未被聲明的名字) 在句法上都被翻譯為 _ENV.var 。 此外,每個被編譯的 Lua 代碼塊都會有一個外部的局部變數叫 _ENV (參見 §3.3.2), 因此,_ENV 這個名字永遠都不會成為一個代碼塊中的自由名字。
在轉譯那些自由名字時,_ENV 是否是那個外部的局部變數無所謂。 _ENV 和其它你可以使用的變數名沒有區別。 這里特別指出,你可以定義一個新變數或指定一個參數叫這個名字。 當編譯器在轉譯自由名字時所用到的 _ENV , 指的是你的程序在那個點上可見的那個名為 _ENV 的變數。 (Lua 的可見性規則參見 §3.5)
被 _ENV 用於值的那張表被稱為 環境。
Lua 保有一個被稱為 全局環境 特別環境。它被保存在 C 注冊表 (參見 §4.5)的一個特別索引下。 在 Lua 中,全局變數 _G 被初始化為這個值。 (_G 不被內部任何地方使用。)
當 Lua 載入一個代碼塊,_ENV 這個上值的默認值就是這個全局環境 (參見 load)。 因此,在默認情況下,Lua 代碼中提及的自由名字都指的全局環境中的相關項 (因此,它們也被稱為 全局變數 )。 此外,所有的標准庫都被載入入全局環境,一些函數也針對這個環境做操作。 你可以用 load (或 loadfile)載入代碼塊,並賦予它們不同的環境。 (在 C 里,當你載入一個代碼塊後,可以通過改變它的第一個上值來改變它的環境。)
2.3 – 錯誤處理
由於 Lua 是一門嵌入式擴展語言,其所有行為均源於宿主程序中 C 代碼對某個 Lua 庫函數的調用。 (單獨使用 Lua 時,lua 程序就是宿主程序。) 所以,在編譯或運行 Lua 代碼塊的過程中,無論何時發生錯誤, 控制權都返回給宿主,由宿主負責採取恰當的措施(比如列印錯誤消息)。
可以在 Lua 代碼中調用 error 函數來顯式地拋出一個錯誤。 如果你需要在 Lua 中捕獲這些錯誤, 可以使用 pcall 或 xpcall 在 保護模式 下調用一個函數。
無論何時出現錯誤,都會拋出一個攜帶錯誤信息的 錯誤對象 (錯誤消息)。 Lua 本身只會為錯誤生成字元串類型的錯誤對象, 但你的程序可以為錯誤生成任何類型的錯誤對象, 這就看你的 Lua 程序或宿主程序如何處理這些錯誤對象。
使用 xpcall 或 lua_pcall 時, 你應該提供一個 消息處理函數 用於錯誤拋出時調用。 該函數需接收原始的錯誤消息,並返回一個新的錯誤消息。 它在錯誤發生後棧尚未展開時調用, 因此可以利用棧來收集更多的信息, 比如通過探知棧來創建一組棧回溯信息。 同時,該處理函數也處於保護模式下,所以該函數內發生的錯誤會再次觸發它(遞歸)。 如果遞歸太深,Lua 會終止調用並返回一個合適的消息。

㈢ 求答案 lua與c語言的調用 (關於游戲腳本的) 、解釋下面代碼的作用

LZ要學LUA的話一定要去看書 Programming in Lua不一定要買紙質的 至少要有個電子檔的 在序言里就已經說了 Lua本身是作為一種擴展語言來定位的 所以本身沒有很強大的庫 而它優勢在於擴展性和兼容性 大部分功能都必須依賴外部的庫 本身只有一些很簡單的庫函數可供調用 但是作為學習的話 那些強大的庫大可不必看 基本的那些庫學起來已經需要好一段時間了
至於腳本和C等的調用問題 雖然兩者都可相互調用,但是畢竟windows與C相連接更緊密,所以一般來說 都是C調用lua 但是當腳本里需要實現一些需要使用c來寫程序的時候也會在lua中調用c
lua腳本和C綁定的問題 c寫的VC程序在windows下是可以直接運行的,lua寫的如果沒有解釋器是無法直接運行的 所以一般來說寫lua程序 想要直接使用的話都會用C來調用

㈣ LUA腳本為什麼可以跨平台跨語言調用

因為用了標準的ASNI C,寫的很規范的。

㈤ lua是什麼語言

Lua 是一個小巧的腳本語言。作者是巴西人。該語言的設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。它的主頁是 www.lua.org。
Lua最著名的應用是在暴雪公司的網路游戲WOW中。
Lua腳本可以很容易的被C/C++代碼調用,也可以反過來調用C/C++的函數,這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,並且更容易理解和維護。
Lua由標准C編寫而成,代碼簡潔優美,幾乎在所有操作系統和平台上都可以編譯,運行。
一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能,這將給Lua帶來更加優秀的性能。請訪問 http://luajit.org/來了解這個項目。
和Python等腳本不同,Lua並沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程序的語言。不過Lua還是具備了比如數學運算和字元串處理等基本的功能。
Lua 目前的最新版本是 5.1.

㈥ Lua腳本怎麼樣調用外部腳本

若要調用外部Lua腳本,需要使用dofile。
這很像C語言中的
#include「」
用法:dofile
("路徑")
==================
--File:E:\lua1.lua
dofile
("Hello.lua")
print(a)
==================
--File:
E:\Hello.lua
a
=
100
==================
==輸出==
100

㈦ 用Lua寫的腳本能用C#語言實現么還有,如果可以的話會更麻煩還是會更簡單

lua跨平台高兼容,你可以在c#里直接引用,用C#表達會麻煩,且不適合大型開發和修改

㈧ Lua是什麼編程語言

  1. Lua 是一個小巧的腳本語言。 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。Lua由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。Lua並沒有提供強大的庫,這是由它的定位決定的。Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能。

  2. Lua腳本可以很容易的被C/C++代碼調用,也可以反過來調用C/C++的函數,這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,並且更容易理解和維護。 Lua由標准C編寫而成,代碼簡潔優美,幾乎在所有操作系統和平台上都可以編譯,運行。一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。

㈨ 怎樣在lua腳本中調用另一個lua腳本中的函數呢

require「函數腳本文件名字」
下面可以直接調用,也可以使用pcall方法安全調用