VV
Size: a a a
m
VV
VV
m
S
*module.lua*Делать прям приватные поля конкретных объектов — несколько сложнее и нужны извращения, но тоже можно теми же upvalue.
local bar = 300 --< типа private
local M = {}
function M.foo(v)
return v + bar
end
return M
S
m
m
*module.lua*Делать прям приватные поля конкретных объектов — несколько сложнее и нужны извращения, но тоже можно теми же upvalue.
local bar = 300 --< типа private
local M = {}
function M.foo(v)
return v + bar
end
return M
VV
m
S
*module.lua*Делать прям приватные поля конкретных объектов — несколько сложнее и нужны извращения, но тоже можно теми же upvalue.
local bar = 300 --< типа private
local M = {}
function M.foo(v)
return v + bar
end
return M
function Class:new(x, y)
self.x = x
self.y = y
-- "приватное" поле
self._area = self.x * self.y
end
-- "приватный" метод, пользователь его видит
-- но понимает что лучше не лезть руками
function Class._raw_set(x, y)
self.x = x
self.y = y
end
Соглашение между джентльменами. Это работает.VV
*module.lua*Делать прям приватные поля конкретных объектов — несколько сложнее и нужны извращения, но тоже можно теми же upvalue.
local bar = 300 --< типа private
local M = {}
function M.foo(v)
return v + bar
end
return M
VV
m
function Class:new(x, y)
self.x = x
self.y = y
-- "приватное" поле
self._area = self.x * self.y
end
-- "приватный" метод, пользователь его видит
-- но понимает что лучше не лезть руками
function Class._raw_set(x, y)
self.x = x
self.y = y
end
Соглашение между джентльменами. Это работает.S
m
VV
function Class:new(x, y)
self.x = x
self.y = y
-- "приватное" поле
self._area = self.x * self.y
end
-- "приватный" метод, пользователь его видит
-- но понимает что лучше не лезть руками
function Class._raw_set(x, y)
self.x = x
self.y = y
end
Соглашение между джентльменами. Это работает.S