1. 程式人生 > >淺談對Lua的看法

淺談對Lua的看法

本著Lua簡單易用的想法來學Lua,沒想到這Lua是一點都不簡單啊!
眾人流傳的Lua指令碼簡單,也只是停留在使用Lua指令碼的層面上而已。事實上設計Lua指令碼卻並非易事,Lua語言設計的原則是小巧,所以甚至很多東西都沒有語言層次上的實現,例如陣列、類、迭代器這些在大多數語言中很常見的東西,在Lua中都需要通過表和函式的靈活變化組成。當然也提供了很多其它有趣的特性,例如閉包、協程、First-Class函式、元表等。因此Lua指令碼設計者需要時刻注意使用語言自身的特性,給Lua指令碼使用者封裝好一些資料結構及高階用法,避免指令碼使用者去學習過多的語言高階特性。
但是總體來說,對於C++遊戲開發者而言,學習Lua也是很重要的。其一,是解決了C++編譯時間過長的問題,Lua支援熱更新,無需編譯,提高開發效率。其二,是將遊戲邏輯與渲染層分離,利於結構解耦合,也利於團隊分工合作。其三,避免C++層的記憶體管理繁瑣,Lua提供了自動垃圾回收機制,使得Lua指令碼使用者在編寫遊戲邏輯時儘量少考慮與遊戲功能無關的細節。
以前學習C、C++、Java、VB這些語言,感覺程式語言大體都類似,但是原來只是因為它們的語言血緣關係親近而已,實際上習慣了C系程式語言的人,去學習一下血緣關係遠一點的程式語言,對於拓展自己的思路和眼界,也是不錯的。你會發現原來思維邏輯可以用如此多的、相差甚遠的表示方法來表達同一種事物,只要是清晰可行的邏輯,它都是好的邏輯,無論你用的是計算機語言,還是人類語言。

相關推薦

Lua看法

本著Lua簡單易用的想法來學Lua,沒想到這Lua是一點都不簡單啊! 眾人流傳的Lua指令碼簡單,也只是停留在使用Lua指令碼的層面上而已。事實上設計Lua指令碼卻並非易事,Lua語言設計的原則是小巧,所以甚至很多東西都沒有語言層次上的實現,例如陣列、類、迭代

心理學角度“人”與“人工智慧”的看法

最近讀完了《終極複製—人工智慧將如何推動社會鉅變》,此書從經濟、政治、歷史、哲學等角度對人工智慧的發展趨勢、對人工智慧未來的窺探、對未來社會的大膽預測和人類面對的挑戰做以介紹;小女子不才,只能領略其中一二,但恰巧最近讀了一本《你的生存本能正在殺死你》,對未來懷著

Bootstrap的看法之三(提示框和彈出框、滾動監聽、小工具)

1.提示框和彈出框相關說明:提示框和彈出框效果類似。提示框:通過向元素新增 data-toggle="tooltip" 來建立提示框,<a href="#" data-toggle="tooltip" title="我是提示內容!">滑鼠移動到我這</a&g

Bootstrap的看法之一(文字顏色、表格、進度條、按鈕)

今天第一次接觸Bootstrap,官方介紹其是前端元件庫,用於開發響應式佈局、移動裝置優先的 WEB 專案。個人認為,Bootstrap是一個大型的CSS樣式包,裡面包含了各種各樣的CSS樣式。當程式設計師進行網站開發時,可以直接使用包中定義好的樣式。另外,Bootstrap

象的創建、內存布局和訪問定位

虛擬機創建 head 分配 完成 原子性 mar ava 失敗重試 檢查 在此簡單的記錄一下《深入理解Java虛擬機》第2章的2.3節內容。 對象的創建   這裏的對象的創建是指普通的對象(不包括數組和Class對象)。對象的創建簡單來說就是執行new的時候,虛擬機做出對應

後綴自動機的一點理解

字符串 變化 post .... 初始 mar 一起 樹狀 子集 後綴自動機入門詳解及模板

xmpp的理解及應用

mpp 通信 new xmpp times div log 傳輸數據 重新 參考原文鏈接 http://blog.sina.com.cn/s/blog_69f68f880102uyeg.html 一、xmpp是基於xml的協議。具有遵循標準,有安全性,使用TCP傳的xml的

NaN的理解

def 淺談 nan 理解 個數字 sna efi 數字 color 1.NaN : Not a Number 不是一個數字 2.NaN 與其他數值進行比較的結果總是不相等的,包括它自身在內 3.判斷是否是NaN, 方法一 :is.NaN(變量);

二分思想的理解

搜索問題 turn class 中一 不能 運算 color arch 因此 1、什麽是二分思想? 二分思想可以理解為是一種將一個大問題分成兩個子題,當每次分析完兩個子問題後,舍棄其中一個不符合條件的子問題,再將符合條件的子問題一分為二,反復循環搜索判斷的操作,直至找到所求

js閉包的理解

閉包就是能夠讀取其他函式內部變數的函式。由於在javascript中,只有函式內部的子函式才能讀取區域性變數,所以閉包可以理解成“定義在一個函式內部的函式“。在本質上,閉包是將函式內部和函式外部連線起來的橋樑。(引用了自由變數的函式) function f1(){ var a=10;

Js面向物件的理解(1)

    面向物件的語言有一個標誌,那就是它們都有類的概念,通過類來建立任意多個具有相同屬性和方法的物件。它是一種程式開發的方法,它將物件作為程式的基本單元,將邏輯和資料封裝其中,以提高程式碼的靈活性、重用性和擴充套件性。物件是把資料及對資料的操作方法放在一起,作為一個相互依存的整體。簡單的

web前端開發技術之HTML5 智能表單的理解

提示 goods 表單 加載完成 空格 日期和時間 url 顯示 指向 Html5新增input的form屬性,用於指向特定form表單的id,實現input無需放在form標簽之中,即可通過表單進行提交。 <FORM id=xinzeng> … </FO

IdentityServer4 access_token 的理解

IDS4伺服器通過JWT簽名(我覺得是私鑰簽名)生成access_token ,JWT包含了 1.header 用於描述元資訊,例如產生 signature 的演算法: { "typ": "JWT", "alg": "HS256" } 其中alg關鍵字就指定了使用哪一種雜湊

web前端技術基礎課程講解之soket的理解

淺談對soket的理解 定義: 網路上的兩個程式通過一個雙向的通訊鏈實現資料的交換,這個連結的一端就成為Socket 它是程序通訊的一種,即呼叫這個網路庫的api函式實現分佈在不同主機相關程序之間的資料交換,依照tcp/ip協議分給每個主機的網路地址,如果兩個主機要進行通訊,任何一個程序都要首先知道對方

Spring IOC容器的理解

看過很多關於Ioc容器的文章,自我理解。 首先,Ioc即“控制反轉”,是一種設計思想。 1、在Java開發中,Ioc意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。 2、傳統Java SE程式設計,我們直接在物件內部通過new進行建立物件,是程式

POW的認識和理解

目錄   一、理清POW:POW共識機制的原理 二、 工作量證明的優缺點 POW的優點 POW的缺點 三、 本人對POW存在問題的解決思路 一、理清POW:POW共識機制的原理 在區塊鏈中,核心的技術之一就是工作量證明機制(Proof-of-Work)。

---equals、hashCode、“==”的理解

在我們平常的學習中,經常會涉及到equals、hashCode、“==”這三者,對於這三者我經常混淆不清。因此,我自行總結了一下。 先說下在我們程式設計中用到的比較不容易區分的equals和hashCode的區別 equals和hashCode都是Object類

js原型鏈的理解

最近重新學習了一下JS原型鏈的知識,為了避免之後自己再忘記,在此記錄下自己對原型鏈的理解,歡迎大家一起討論交流 js中的物件分為函式物件與普通物件,函式物件有prototype與__proto__,普通物件只有__proto__,那麼怎麼區分這兩種物件呢? var f =

面向物件的理解(2)

面向過程與面向物件的區別: 面向過程是一種直接的程式設計方法,它是按照程式語言的思路考慮問題。通過順序執行一組語句來實現一個功能,這些語句的執行過程就是整個程式。 面向物件是一種抽象度更高的程式設計方法。它的目標是使模組的抽象度更高,目的是可複用。面向物件三大特性:封裝,繼承,多型。 面向過程可以說是從細節方

“面向物件”與“面向過程”的理解

面向過程,顧名思義是更注重過程。面向物件,是更注重物件。面向過程的實現過程是整個程式以步驟劃分,如五子棋第一步開始遊戲,第二步黑方先行等等。面向物件的實現過程是整個程式以物件劃分,以物件有什麼功能(方法)來實現,如五子棋分為黑白雙方、棋盤物件、規則物件。