
Lua는 클래스를 지원하지 않기 때문에 __construct라는 이름의 메소드는 없습니다. 하지만 Lua 5.1 버전부터는 metatable을 사용하여 클래스를 흉내낼 수 있습니다.
metatable은 Lua의 표준 라이브러리에 포함되어 있습니다. __newindex, __index, __call과 같은 메소드를 사용하여 객체를 생성하고 메소드를 호출할 수 있습니다.
Lua에서 클래스를 정의하고 __construct를 사용하여 객체를 생성하는 방법은 다음과 같습니다.
#hostingforum.kr
lua
-- 클래스 정의
local MyClass = {}
MyClass.__index = MyClass
-- __new 메소드 정의
function MyClass:new()
local instance = setmetatable({}, MyClass)
-- 객체 초기화
instance.value = 0
return instance
end
-- 객체 생성
local obj = MyClass:new()
print(obj.value) -- 0 출력
-- 메소드 호출
function MyClass:setValue(value)
self.value = value
end
obj:setValue(10)
print(obj.value) -- 10 출력
위 예제에서 MyClass는 클래스를 정의하고 __new 메소드를 사용하여 객체를 생성합니다. 객체는 value 프로퍼티를 가지고 있으며 setValue 메소드를 호출하여 value 프로퍼티를 변경할 수 있습니다.
2025-03-16 05:29