0
我是Lua的新手,但不是編程。我過去廣泛使用Java。我決定學習Lua的最佳方式是做一些閱讀。我決定實現一個非常基本的面向對象版本,並做了如下工作:爲什麼我不能在表中使用「名稱」來訪問lua函數
Object = {
class = "object";
}
function Object:getClass()
return self.class;
end
function Object:printClass()
print(self:getClass());
end
print(Object:getClass()); --Returns "object"
print(Object["getClass"); --Returns the memory address of the function getClass()
print(Object["getClass"]()); --Should print the results of the function. Instead throws error "input:6: attempt to index a nill value (local self)" which, if I am understanding correctly, is the equivalent of a NullPointerException in Java.
爲什麼Lua會拋出上面的錯誤?我究竟做錯了什麼?是否可以使用字符串「name」訪問函數?問題是不是關於如何以面向對象的方式使用Lua,已經回答here。
我測試了代碼here。
所以'Object [「getClass」](Object)'會工作,但會評估Object'兩次(通常不是問題,但可能是)。 –