lua文件是什么?
一種小巧的腳本語言,其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。Lua並沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程序的語言。Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能。
Lua腳本可以很容易的被C/C++ 代碼調用,也可以反過來調用C/C++的函數,這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,並且更容易理解和維護。Lua由標准C編寫而成,代碼簡潔優美,幾乎在所有操作系統和平台上都可以編譯,運行。一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
運行可以通過 Lua 的交互模式,也可以用記事本編輯代碼保存為 .lua 的格式,通過 lua 編譯器運行。也可以通過第三方工具,將 lua 打包獨立運行。
lua_newtable(L); //創建一個表格,放在棧頂 lua_pushstring(L,"mydata"); //壓入key lua_pushnumber(L,66); //壓入value lua_settable(L,-3); //彈出key,value,並設置到table里面去 lua_pushstring(L,"subdata");//壓入key lua_newtable(L); //壓入value,也是一個table lua_pushstring(L,"mydata"); //壓入subtable的key lua_pushnumber(L,53); valuelua_settable(L,-3); //彈出key,value,並設置到subtable lua_settable(L,-3); //這時候父table的位置還是-3,彈出key,value(subtable), //並設置到table里去 lua_pushstring(L,"mydata2");//同上 lua_pushnumber(L,77); lua_settable(L,-3); return1; //棧里現在就一個table其他都被彈掉了。如果要返回一個數組, //用如下代碼:(注意那個關於trick的注釋,我在等官方的解釋。 //經過驗證,這個問題只在windows版本調用dll中方法的時候出現。WinCE正常) lua_pushstring(L,"arri"); lua_newtable(L); { //atrick:otherwisetheluaenginewillcrash.ThiselementisinvisibleinLuascript lua_pushnumber(L,-1); lua_rawseti(L,-2,0); for(int i=0; i<arri.size(); i++) { lua_pushnumber(L, arri); lua_rawseti(L, -2, i+1); } } lua_settable(L,-3);
