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
廣告
© . All rights reserved.