lua中構造類的時候,有些函式是提供給類中的方法使用的,並不想對外提供。這個時候就需要通過一定的方式,讓外部無法訪問這個類這些私有方法。
在之前的繼承和多繼承中,是通過__index的方法達到繼承的目的,但是這樣的方式會繼承類內部所有的內容。為了保護私有部分,需要換一種繼承方式。
**如下:
function
newaccount(initialbalance)
local self =
local withdraw = function(v)
self.balance = self.balance - v
endlocal deposit = function (v)
self.balance = self.balance + v
endlocal extra = function ()
if self.balance > lim then
return self.balance * 0.1
else
return
0end
endlocal
function
getbalance()
return self.balance + extra()
endreturn
end
上述**,將區域性變數和區域性函式都放在了類的內部。
extra函式只會被用於函式內部的呼叫,沒有必要也不允許被外部訪問。
為了滿足這樣的需求,把extra函式用區域性的方式宣告。然後將可以向外提供的函式,通過乙個table返回。
上述**用同樣的方法將資料進行了私有化,只能通過向外提供的函式來運算元據。
DAY13學習筆記
疊加多個裝飾器 當乙個被裝飾的物件同時疊加多個裝飾器時 裝飾器的載入順序是 自下而上。迭代器 什麼是迭代器 迭代指的是乙個重複的過程,每一次重複都是基於上一次的結果而來的。迭代器指的是迭代取值的工具,該工具的特點是可以不依賴於索引取值。為何要用迭代器 為了找出一種通用的 可以不依賴於索引的迭代取值方...
C 學習筆記 day13
1 資料 記憶體中 變數 磁碟上 檔案 2 把資料從其他的裝置搬到記憶體中 輸入 讀 把記憶體中的資料放到其他裝置中 輸出 寫 3 流物質的定向移動,輸入輸出流中是資料的定向移動 輸入流的源頭 檔案 目的地 記憶體 輸出流的源頭 記憶體 目的地 檔案 4 標準輸出裝置 顯示器 標準輸入裝置 鍵盤 鍵...
力扣學習筆記day13
編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with value 8 輸...