LU Lua  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Значения, типы и переменные Lua

Тест по теме «Значения, типы и переменные Lua» проверяет чтение кода, поиск скрытых допущений и выбор решения для обычных и граничных сценариев. В нём 20 вопросов, из них 10 содержат фрагменты Lua. Условия отдельно отмечают случаи, зависящие от версии языка или внешней библиотеки.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На работу отведено 55 минут. После завершения можно посмотреть правильные ответы, объяснения и результат по каждой теме.
Вопрос 1 из 20
Какая семантическая деталь определяет поведение фрагмента? Выберите основное правило раздела «Динамические типы».
LuaLua · Динамические типы · разбор 1
local value = 12
value = "12"
print(type(value), value + 3)
Вопрос 2 из 20
Какую границу стоит сделать явной в регрессионной проверке? Нужен отрицательный сценарий для раздела «Динамические типы».
LuaLua · Динамические типы · разбор 2
local function reproduce_case()
  local value = 12
  value = "12"
  print(type(value), value + 3)
end
reproduce_case()
Вопрос 3 из 20
После рефакторинга тесты должны защищать одно правило. Какое? Речь идёт о центральном правиле раздела «Динамические типы».
LuaLua · Динамические типы · разбор 3
do
  local value = 12
  value = "12"
  print(type(value), value + 3)
end
Вопрос 4 из 20
В проекте пересматривают «Динамические типы». Какое правило лучше выразить в интерфейсе, а не оставлять устной договорённостью? Выберите практическое следствие раздела «Динамические типы».
Вопрос 5 из 20
Какое правило раздела «Динамические типы» стоит закрепить в тестах? Нужна полная формулировка раздела «Динамические типы».
Вопрос 6 из 20
Что нужно знать о Lua, прежде чем предсказывать результат этого кода? Нужна именно центральная гарантия раздела «Отсутствующее значение nil».
LuaLua · Отсутствующее значение nil · разбор 1
local t = {mode = "fast", retries = 2}
t.mode = nil
print(t.mode, rawget(t, "mode"), next(t) ~= nil)
Вопрос 7 из 20
Какую границу стоит сделать явной в регрессионной проверке? Нужен отрицательный сценарий для раздела «Отсутствующее значение nil».
LuaLua · Отсутствующее значение nil · разбор 2
local function reproduce_case()
  local t = {mode = "fast", retries = 2}
  t.mode = nil
  print(t.mode, rawget(t, "mode"), next(t) ~= nil)
end
reproduce_case()
Вопрос 8 из 20
Какой инвариант нельзя потерять при упрощении этого фрагмента? Выберите гарантию, определяющую раздел «Отсутствующее значение nil».
LuaLua · Отсутствующее значение nil · разбор 3
do
  local t = {mode = "fast", retries = 2}
  t.mode = nil
  print(t.mode, rawget(t, "mode"), next(t) ~= nil)
end
Вопрос 9 из 20
В проекте пересматривают «Отсутствующее значение nil». Какое правило лучше выразить в интерфейсе, а не оставлять устной договорённостью? Ответ должен выражать проверяемое следствие раздела «Отсутствующее значение nil».
Вопрос 10 из 20
Какое утверждение о разделе «Отсутствующее значение nil» точно и не обещает лишнего? Нужна полная формулировка раздела «Отсутствующее значение nil».
Вопрос 11 из 20
Какое правило точнее всего описывает происходящее в строке «local y = x + 1»? Ответ должен описывать основной механизм раздела «Локальные имена».
LuaLua · Локальные имена · разбор 1
local x = 10
local y = x + 1
local x = x * 2
print(x, y)
Вопрос 12 из 20
Какая проверка отделит устойчивый контракт от удачного совпадения? Нужен отрицательный сценарий для раздела «Локальные имена».
LuaLua · Локальные имена · разбор 2
local function reproduce_case()
  local x = 10
  local y = x + 1
  local x = x * 2
  print(x, y)
end
reproduce_case()
Вопрос 13 из 20
Код переписывают без изменения внешнего поведения. Какой контракт должен сохраниться? Нужен основной контракт раздела «Локальные имена».
Вопрос 14 из 20
Нужно сделать поведение «Локальные имена» предсказуемым для следующего разработчика. Что выбрать? Нужна эксплуатационная граница раздела «Локальные имена».
Вопрос 15 из 20
Какое утверждение о разделе «Локальные имена» точно и не обещает лишнего? Выберите описание, объединяющее механизм и границу раздела «Локальные имена».
Вопрос 16 из 20
Результат здесь задаёт не соглашение проекта, а правило языка. Какое? Ответ должен описывать основной механизм раздела «Преобразования».
LuaLua · Преобразования · разбор 1
local raw = "08"
local n = tonumber(raw)
print(n and n + 2, tostring(n))
Вопрос 17 из 20
Какой крайний случай важнее всего добавить к проверке? Ищется граничное следствие правила из раздела «Преобразования».
LuaLua · Преобразования · разбор 2
local function reproduce_case()
  local raw = "08"
  local n = tonumber(raw)
  print(n and n + 2, tostring(n))
end
reproduce_case()
Вопрос 18 из 20
Какой контракт отличит эквивалентный рефакторинг от тихой поломки? Речь идёт о центральном правиле раздела «Преобразования».
Вопрос 19 из 20
Команда меняет раздел «Преобразования» в рабочем модуле. На какое решение можно опереться при повторном запуске и отказе зависимости? Нужна эксплуатационная граница раздела «Преобразования».
Вопрос 20 из 20
Какое утверждение о разделе «Преобразования» наиболее полное и точное? Нужна полная формулировка раздела «Преобразования».

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу