Lua之基礎篇
阿新 • • 發佈:2020-07-26
新到一家公司,接觸有些業務竟然直接通過伺服器,在nginx層面就完成了,主要是基於OpenResty和Lua來實現的。打算深入瞭解一下這門神奇的語言。。。
為了嵌入應用程式中,從而為應用程式提供靈活的擴充套件和定製功能。
Lua 特性
- 輕量級: 它用標準C語言編寫並以原始碼形式開放,編譯後僅僅一百餘K,可以很方便的嵌入別的程式裡。
- 可擴充套件: Lua提供了非常易於使用的擴充套件介面和機制:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內建的功能一樣。
- 其它特性:
- 支援面向過程(procedure-oriented)程式設計和函數語言程式設計(functional programming);
- 自動記憶體管理;只提供了一種通用型別的表(table),用它可以實現陣列,雜湊表,集合,物件;
- 語言內建模式匹配;閉包(closure);函式也可以看做一個值;提供多執行緒(協同程序,並非作業系統所支援的執行緒)支援;
- 通過閉包和table可以很方便地支援面向物件程式設計所需要的一些關鍵機制,比如資料抽象,虛擬函式,繼承和過載等
Lua 應用場景
- 遊戲開發
- 獨立應用指令碼
- Web 應用指令碼
- 擴充套件和資料庫外掛如:MySQL Proxy 和 MySQL WorkBench
- 安全系統,如入侵檢測系統
安裝
1)Mac
brew install lua