5
A
回答
10
從Lua documentation section 2.5.9,自參考通常self
是:
冒號語法用於定義方法,即, 具有一個隱含的額外的參數
self
功能。因此,聲明function t.a.b.c:f (params) body end
是語法糖
t.a.b.c.f = function (self, params) body end
9
由於Greg pointed out already,你正在尋找的名字是self
。
但是,請注意,Lua不僅僅是一種OOP語言,它還不僅僅是一種純粹的程序或功能語言。它只是提供所有實現OOP設計的低級機制。其中一個設計原則就是「提供機制,而不是政策」。因此,無法保證所運行的環境甚至使用繼承,或者您可以爲任何給定對象找到父級。
這將是審查的Lua手冊,程序在Lua的部分,涉及到OOP特性是一個好主意,和維基:
- Lua Manual,尤其是部分2.5.8,2.5.9和2.8。
- PiL Chapter 16,鏈接到第一版的在線副本,這是在Lua 5.0時編寫的。閱讀在線副本,但請注意,目前版本的Lua不同於購買第二版的強烈推薦。)
- Lua Wiki on OOP,特別是tutorial和文章simple classes。
2
在Lua中,你會想要「自我」的價值。但是,您正在使用沙盒的ROBLOX。每個腳本都在它自己的線程中運行,並引用該腳本,你需要使用「腳本」,即script.Parent
1
local Table = {}
Table.Var = "Testing"
function Table:Test()
print(self.Var)
end
Table:Test()
或
local Table = {}
Table.Var = "Testing"
function Table.Test(self)
print(self.Var)
end
兩個功能也將這樣做確切的事情。
- 編輯 -
這隻適用於表。如果您嘗試獲取腳本的父級,則需要使用script.Parent
- 注意 script.Parent將返回腳本所在的位置。如果添加另一個父級script.Parent.Parent,它將返回父級的父級,等等。
相關問題
- 1. Lua中對象的「引用」是什麼樣的?
- 2. 查找所有對Lua中對象的引用
- 3. 如何使一個對象在lua中是靜態的
- 4. 如何刪除lua中的引用表?
- 5. 在Lua中使用對象
- 6. Lua的對象不是唯一的
- 7. 如何從lua_topointer訪問lua的對象?
- 8. Lua:如何從C中引用lua類中的lua方法以備後用?
- 9. ArrayList中的重複對象是對單個對象的引用?
- 10. 如何引用VBA中的HTMLSelect對象?
- 11. 如何引用AS3中的對象?
- 12. 如何「反引用」 Java中的對象
- 13. 如何引用autorelease池中的對象?
- 14. Lua在對象引用中使用變量?
- 15. Lua類對象?
- 16. 什麼是Python中的對象引用?
- 17. 如何快速知道對象是否從NSArray中的對象引用?
- 18. 如何用對象引用
- 19. 如何引用其他對象中的對象
- 20. 如何獲得java中對象的父對象引用?
- 21. 對象分配的Lua
- 22. 的Lua對象內省
- 23. 如何在引用基類對象的向量中引用派生對象?
- 24. 如何獲取XML對象引用而不是as3中的值
- 25. 如何將key值對象插入到redis中的lua表中
- 26. 如何從對象引用
- 27. PHP對象,如何引用?
- 28. 數組中的對象幫助Lua?
- 29. 無法更改lua中對象的值
- 30. java中的引用對象
我將「LUA」更改爲Lua。Lua是葡萄牙語中的專有名詞,地球的月亮名稱。這不是一個縮寫。 – RBerteig 2009-07-01 06:08:21