Вопрос по книге Луа

Страницы: 1
RSS
Вопрос по книге Луа
 
Подскажите пожалуйста, что в этом коде делает _Window и чем она отличается от Window?
Код
function Window (options)
-- проверка обязательных опций
if type(options.title) ~= "string" then
error("no title")
elseif type(options.width) ~= "number" then
error("no width")
elseif type(options.height) ~= "number" then
error("no height")
end
-- everything else is optional
_Window(options.title,
options.x or 0, -- значение по умолчанию
options.y or 0, -- значение по умолчанию
options.width, options.height,
options.background or "white", -- по умолчанию
options.border -- по умолчанию false (nil)
)
end
Это код из Главы 5.3. книги Иерусалимскиса Программирование на Луа.
Речь идёт про именованные аргументы.
Перед приведённым кодом идёт текст:

 
Функция _Window определена как

Код
function _Window (title, x, y, width, height, background_color, border)...end

Функция Window определена как

Код
function Window (options)
--проверка валидности options
...

--вызов _Window
_Window(  options.title, 
  options.x or 0, -- значение по умолчанию 
  options.y or 0, -- значение по умолчанию 
  options.width, 
  options.height, 
  options.background or "white", -- по умолчанию 
  options.border -- по умолчанию false (nil))
end

Т.е., по сути, Window, в данном случае, -- это обёртка над _Window, предоставляющая более удобный API.
Страницы: 1
Читают тему
Наверх