Course Code: luacomp
Duration: 21 hours
Prerequisites:

熟悉至少一種其他程式設計語言。Programming 經驗。或者,如果您熟悉其他腳本語言,這將使您更容易理解 Lua。

Overview:

Lua 是一種易於使用的腳本語言,在不同的產品中用作嵌入式外掛程式/擴展語言。例如,它是nmap和wireshark等網路應用程式的嵌入式腳本語言,也可以在魔獸世界、Orbiter 和其他遊戲中找到腳本語言。

Lua 也可以作為獨立語言使用。它是一種輕量級、多範式的程式設計語言,因此該課程教授各種概念,學生會發現這些概念在軟體工程的其他領域也很有用。

本課程涵蓋了關於 Lua 的所有資訊。我們從基本的程式設計結構開始構建,學習高級技術,最後討論將 Lua 嵌入到其他程式設計語言中,以及將其他程式設計語言嵌入到 Lua 中。該課程包含大量程式設計練習,以便新手可以從頭開始熟練掌握這門語言。

Course Outline:

Lua 簡介

  • 一點歷史
  • Lua的目標、特點和非目標
  • Lua 文件和教程的資源
  • 安裝 Lua 解釋器
  • 設置和使用 LuaRocks

基本語法和語義

  • 標識碼
  • 評論、阻止評論
  • 全域變數和嚴格性的實施
  • 局部變數
  • 獨立程式、程序參數
  • 編譯單元、塊、表達式、分號

數據類型和數據結構

  • 基本類型:nil、boolean、number、string
  • 物件類型:函數、用戶數據、線程、表
  • 引用/物件與基本值
  • Lua 中表格的重要性

介紹桌子及其多功能性

  • 表作為關聯陣列
  • 表作為數位數位、序列

基本控制結構

  • if then elseelse 結束
  • while 迴圈
  • 重複迴圈
  • 簡單的 for 迴圈

錯誤處理

  • 返回值與異常
  • 將返回值轉換為異常
  • 將異常轉換為返回值
  • 錯誤級別

示例程式

  • 多項式求值
  • 廣度優先搜索
  • 其他練習

有關函數的更多資訊

  • 命名參數
  • 面向物件的調用
  • 閉包
  • 咖喱
  • 尾部呼叫
  • 多次分配和返回
  • 瓦拉格斯

反覆運算器和協程

  • 泛型 for 迴圈
  • 無狀態反覆運算器與有狀態反覆運算器
  • 反覆運算器和協程之間的差異

元表和元方法

  • 設置範例
  • __tostring元方法
  • 算術元方法
  • __index、__newindex元方法
  • __len元方法

模組和套件

  • 使用模組
  • 創建模組
  • 將模組組織到包中

高級表

  • 佇列和堆疊的表
  • 描述圖形的表格
  • 矩陣作為表
  • 以表格形式鏈接的鏈表
  • 字串緩衝區

通過示例的元表

  • 代理
  • 唯讀
  • 記憶
  • 帶記憶的動態程式設計
  • 斐波那契例子

環境

  • 全域變數與環境的關係
  • 自由變數
  • _ENV 表和 _G 表

有關模組的更多資訊

  • 創建模組的不同方法
  • 更改行為的模組
  • 模組初始化和參數
  • 使用環境實現安全模組

高級反覆運算器和協程

  • 生產者、消費者、篩檢程式
  • 包裝協程以獲取反覆運算器
  • 鏈表的無狀態反覆運算器

為生態系統做貢獻

  • 將包裹上傳到 MoonRocks

Lua 中的函數範式

  • map 函數
  • 縮小/摺疊功能

面向物件Programming

  • 不同的 OOP 方法
  • 不同的繼承方法
  • 例子

Lua 標準庫演練

彙編

  • 彙編
  • 評估
  • 與環境的關係
  • 二進位塊

垃圾回收

  • 弱表
  • 終結器,__gc元方法

Lua 位元組碼和虛擬機

  • 從原始碼生成位元組碼
  • 讀取和分析位元組碼
  • 快速流覽 Lua VM 的原始程式碼

C 模組

  • 從 Lua 調用 C
  • Search C 模組的路徑和載入

從 C 呼叫 Lua

  • 堆疊
  • 錯誤處理
  • 延續

處理 C 中的 Lua 值和類型

  • 陣 列
  • 字串
  • 用戶數據
  • 元表
  • 面向物件的調用
  • 輕量級用戶數據

記憶體管理

  • 25天
  • 氣相色譜 API

Lua 中的線程

  • 協程與線程
  • 真正的多線程和 Lua 狀態
Sites Published:

United Arab Emirates - Comprehensive Lua

Qatar - Comprehensive Lua

Egypt - Comprehensive Lua

Saudi Arabia - Comprehensive Lua

South Africa - Comprehensive Lua

Brasil - Compreendendo a linguagem de programação Lua

Canada - Comprehensive Lua

中国 - Comprehensive Lua

香港 - Comprehensive Lua

澳門 - Comprehensive Lua

台灣 - Comprehensive Lua

USA - Comprehensive Lua

Österreich - Lua Programmierung

Schweiz - Lua Programmierung

Deutschland - Lua Programmierung

Czech Republic - Comprehensive Lua

Denmark - Comprehensive Lua

Estonia - Comprehensive Lua

Finland - Comprehensive Lua

Greece - Comprehensive Lua

Magyarország - Comprehensive Lua

Ireland - Comprehensive Lua

Luxembourg - Comprehensive Lua

Latvia - Comprehensive Lua

España - Comprehensive Lua

Italia - Comprehensive Lua

Lithuania - Comprehensive Lua

Nederland - Comprehensive Lua

Norway - Comprehensive Lua

Portugal - Compreendendo a linguagem de programação Lua

România - Comprehensive Lua

Sverige - Comprehensive Lua

Türkiye - Comprehensive Lua

Malta - Comprehensive Lua

Belgique - Comprehensive Lua

France - Comprehensive Lua

日本 - Comprehensive Lua

Australia - Comprehensive Lua

Malaysia - Comprehensive Lua

New Zealand - Comprehensive Lua

Philippines - Comprehensive Lua

Singapore - Comprehensive Lua

Thailand - Comprehensive Lua

Vietnam - Comprehensive Lua

India - Comprehensive Lua

Argentina - Comprehensive Lua

Chile - Comprehensive Lua

Costa Rica - Comprehensive Lua

Ecuador - Comprehensive Lua

Guatemala - Comprehensive Lua

Colombia - Comprehensive Lua

México - Comprehensive Lua

Panama - Comprehensive Lua

Peru - Comprehensive Lua

Uruguay - Comprehensive Lua

Venezuela - Comprehensive Lua

Polska - Lua Programming

United Kingdom - Comprehensive Lua

South Korea - Comprehensive Lua

Pakistan - Comprehensive Lua

Sri Lanka - Comprehensive Lua

Bulgaria - Comprehensive Lua

Bolivia - Comprehensive Lua

Indonesia - Comprehensive Lua

Kazakhstan - Comprehensive Lua

Moldova - Comprehensive Lua

Morocco - Comprehensive Lua

Tunisia - Comprehensive Lua

Kuwait - Comprehensive Lua

Oman - Comprehensive Lua

Slovakia - Comprehensive Lua

Kenya - Comprehensive Lua

Nigeria - Comprehensive Lua

Botswana - Comprehensive Lua

Slovenia - Comprehensive Lua

Croatia - Comprehensive Lua

Serbia - Comprehensive Lua

Bhutan - Comprehensive Lua

Nepal - Comprehensive Lua

Uzbekistan - Comprehensive Lua