- Lua 教程
- Lua - 首頁
- Lua 基礎
- Lua - 概述
- Lua - 環境
- Lua - 基本語法
- Lua - 註釋
- Lua - 列印 Hello World
- Lua - 變數
- Lua - 資料型別
- Lua - 運算子
- Lua - 迴圈
- Lua - 條件語句
- Lua - 函式
- Lua - 日期和時間
- Lua 陣列
- Lua - 陣列
- Lua - 多維陣列
- Lua - 陣列長度
- Lua - 遍歷陣列
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 列表搜尋
- Lua 模組
- Lua - 模組
- Lua - 名稱空間
- Lua 元表
- Lua - 元表
- Lua 協程
- Lua - 協程
- Lua 檔案處理
- Lua - 檔案I/O
- Lua 庫
- Lua - 標準庫
- Lua - 數學庫
- Lua - 作業系統功能
- Lua 有用資源
- Lua - 快速指南
- Lua - 有用資源
- Lua - 討論
Lua - 名稱空間
名稱空間是一個宣告區域,它為其中的識別符號(型別、函式、變數等的名稱)提供作用域。
簡單來說,名稱空間是一類元素,其中每個元素都具有該類特有的名稱。它用於將程式碼組織成邏輯組,並防止特別是在程式碼庫包含多個庫時可能發生的名稱衝突。
在 Lua 中,並不存在名稱空間。儘管 Lua 不支援名稱空間,官方文件中提到,“有時將程式碼組織成帶有名稱空間的包和模組以避免名稱衝突並組織程式碼是很好的”。
由於 Lua 沒有官方的名稱空間,我們必須自己建立一個,方法是使用表。
在下面顯示的程式碼中,我們建立了一個包含兩個不同函式的名稱空間,我們可以使用它們而不會出現程式設計問題。
示例
考慮下面顯示的示例:
main.lua
Distance = Distance or {} -- Allow addition to namespace
function Distance.onedim(start, stop)
return (start > stop) and start - stop or stop - start
end
function Distance.twodim(start, stop)
local xdiff = start[1] - stop[1]
local ydiff = start[2] - stop[2]
local summer = xdiff * xdiff + ydiff * ydiff
return math.sqrt(summer)
end
print(Distance.onedim(5,10))
print(Distance.twodim({5,10},{10,20}))
輸出
5 11.180339887499
廣告