<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Lua簡介 #### Lua 是什么? 1993年在巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro in Brazil)誕生了一門編程語言,發明者是該校的三位研究人員,他們給這門語言取了個浪漫的名字——`Lua`,在葡萄牙語里代表美麗的月亮。事實證明她沒有糟蹋這個優美的單詞,Lua語言正如它名字所預示的那樣成長為一門簡潔、優雅且富有樂趣的語言。 Lua 從一開始就是作為一門方便嵌入(其它應用程序)并可擴展的輕量級腳本語言來設計的,因此她一直遵從著簡單、小巧、可移植、快速的原則,官方實現完全采用ANSI C編寫,能以C程序庫的形式嵌入到宿主程序中。Lua 的每個版本都保持著開放源碼的傳統,不過各版采用的許可協議并不相同,自5.0版(最新版是5.1)開始她采用的是著名的MIT許可協議。正由于上述特點,所以Lua在游戲開發、機器人控制、分布式應用、圖像處理、生物信息學等各種各樣的領域中得到了越來越廣泛的應用。其中尤以游戲開發為最,許多著名的游戲,比如 Escape from Monkey Island、World of Warcraft、大話西游,都采用了 Lua 來配合引擎完成數據描述、配置管理和邏輯控制等任務。 作為一門過程型動態語言,Lua有著如下的特性: 1. 變量名沒有類型,值才有類型,變量名在運行時可與任何類型的值綁定; 1. 語言只提供唯一一種數據結構,稱為表(table),它混合了數組、哈希,可以用任何類型的值作為key和value。提供了一致且富有表達力的表構造語法,使得Lua很適合描述復雜的數據; 1. 函數是一等類型,支持匿名函數和正則尾遞歸(proper tail recursion); 1. 支持詞法定界(lexical scoping)和閉包(closure); 1. 提供thread類型和結構化的協程(coroutine)機制,在此基礎上可方便實現協作式多任務; 1. 運行期能編譯字符串形式的程序文本并載入虛擬機執行; 1. 通過元表(metatable)和元方法(metamethod)提供動態元機制(dynamic meta-mechanism),從而允許程序運行時根據需要改變或擴充語法設施的內定語義; 1. 能方便地利用表和動態元機制實現基于原型(prototype-based)的面向對象模型; 1. 從5.1版開始提供了完善的模塊機制,從而更好地支持開發大型的應用程序; Lua的語法類似 PASCAL 和 Modula 但更加簡潔,所有的語法產生式規則(EBNF)不過才60幾個。熟悉 C 和 PASCAL 的程序員一般只需半個小時便可將其完全掌握。而在語義上 Lua 則與 Scheme 極為相似,她們完全共享上述的1、3、4、6點特性, Scheme 的 continuation 與協程也基本相同只是自由度更高。最引人注目的是,兩種語言都只提供唯一一種數據結構:Lua 的表和 Scheme 的列表(list)。正因為如此,有人甚至稱Lua為“只用表的 Scheme”。 #### Lua 和 LuaJIT 的區別 Lua非常高效,它運行得比許多其它腳本(如Perl、Python、Ruby)都快,這點在第三方的獨立測評中得到了證實。盡管如此,仍然會有人不滿足,他們總覺得“嗯,還不夠快!”。LuaJIT就是一個為了再榨出一點速度的嘗試,它利用JIT編譯技術把Lua代碼編譯成本地機器碼后交由CPU直接執行。LuaJIT測評報告表明,在浮點運算、循環和協程的切換等方面它的加速效果比較顯著,但如果程序大量依賴C編寫的函數,那么運行速度便不會有什么改進。目前LuaJIT只支持X86 CPU。 LuaJIT 是采用 C 語言寫的 Lua 的解釋器。LuaJIT 被設計成全兼容標準 Lua 5.1, 因此 LuaJIT 代碼的語法和標準 Lua 的語法沒多大區別。LuaJIT 和 Lua 的一個區別是,LuaJIT 的運行速度比標準 Lua 快數十倍,可以說是一個 Lua 的高效率版本。 若無特殊說明,我們接下來的章節都是基于 LuaJIT 進行介紹的。 Lua 官網鏈接:[http://www.lua.org](http://www.lua.org) ,LuaJIT 官網鏈接:[http://luajit.org](http://luajit.org)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看