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

Таблицы как универсальная структура

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На работу отведено 55 минут. После завершения можно посмотреть правильные ответы, объяснения и результат по каждой теме.
Вопрос 1 из 20
Почему этот фрагмент ведёт себя именно так? Ответ должен описывать основной механизм раздела «Массивная часть».
LuaLua · Массивная часть · разбор 1
local a = {10, 20, nil, 40}
print(#a, a[4])
Вопрос 2 из 20
Что следует изменить во входе, чтобы проверить скрытое ограничение? Ищется граничное следствие правила из раздела «Массивная часть».
LuaLua · Массивная часть · разбор 2
local function reproduce_case()
  local a = {10, 20, nil, 40}
  print(#a, a[4])
end
reproduce_case()
Вопрос 3 из 20
Что здесь является частью контракта, а не случайностью текущей записи? Нужен основной контракт раздела «Массивная часть».
LuaLua · Массивная часть · разбор 3
do
  local a = {10, 20, nil, 40}
  print(#a, a[4])
end
Вопрос 4 из 20
Код по разделу «Массивная часть» уходит в эксплуатацию. Какое ограничение нельзя прятать внутри реализации? Выберите практическое следствие раздела «Массивная часть».
Вопрос 5 из 20
Что в разделе «Массивная часть» является гарантией, а не привычкой конкретного проекта? Выберите описание, объединяющее механизм и границу раздела «Массивная часть».
Вопрос 6 из 20
Почему этот фрагмент ведёт себя именно так? Выберите основное правило раздела «Ключи».
LuaLua · Ключи · разбор 1
local key = {}
local t = {[key] = "object", [1.0] = "number"}
print(t[key], t[1])
Вопрос 7 из 20
Какой риск останется незамеченным, если выполнить код только один раз? Ищется граничное следствие правила из раздела «Ключи».
LuaLua · Ключи · разбор 2
local function reproduce_case()
  local key = {}
  local t = {[key] = "object", [1.0] = "number"}
  print(t[key], t[1])
end
reproduce_case()
Вопрос 8 из 20
Что должно пережить замену вспомогательных функций и имён переменных? Выберите гарантию, определяющую раздел «Ключи».
LuaLua · Ключи · разбор 3
do
  local key = {}
  local t = {[key] = "object", [1.0] = "number"}
  print(t[key], t[1])
end
Вопрос 9 из 20
Что стоит зафиксировать до расширения функциональности раздела «Ключи»? Нужна эксплуатационная граница раздела «Ключи».
Вопрос 10 из 20
Какой вариант точнее всего передаёт смысл раздела «Ключи»? Ответ должен охватывать весь раздел «Ключи».
Вопрос 11 из 20
Какое утверждение объясняет результат без скрытых допущений? Ответ должен описывать основной механизм раздела «Обход».
LuaLua · Обход · разбор 1
local t = {b=2, a=1, c=3}
for k, v in pairs(t) do print(k, v) end
Вопрос 12 из 20
Что должен поймать отрицательный тест для этого фрагмента? Нужен отрицательный сценарий для раздела «Обход».
LuaLua · Обход · разбор 2
local function reproduce_case()
  local t = {b=2, a=1, c=3}
  for k, v in pairs(t) do print(k, v) end
end
reproduce_case()
Вопрос 13 из 20
Какой результат обязан подтверждать регрессионный тест после правки? Речь идёт о центральном правиле раздела «Обход».
Вопрос 14 из 20
Что стоит зафиксировать до расширения функциональности раздела «Обход»? Ответ должен выражать проверяемое следствие раздела «Обход».
Вопрос 15 из 20
Какое описание раздела «Обход» выдерживает и обычный, и граничный сценарий? Ответ должен охватывать весь раздел «Обход».
Вопрос 16 из 20
Что нельзя заменить привычкой из другого языка при чтении этого кода? Ответ должен описывать основной механизм раздела «Изменение структуры».
LuaLua · Изменение структуры · разбор 1
local t = {a=1, b=2, c=3}
for k in pairs(t) do
  if t[k] % 2 == 1 then t[k] = nil end
end
print(t.a, t.b, t.c)
Вопрос 17 из 20
Где этот код может повести себя иначе на границе? Ищется граничное следствие правила из раздела «Изменение структуры».
LuaLua · Изменение структуры · разбор 2
local function reproduce_case()
  local t = {a=1, b=2, c=3}
  for k in pairs(t) do
    if t[k] % 2 == 1 then t[k] = nil end
  end
  print(t.a, t.b, t.c)
end
reproduce_case()
Вопрос 18 из 20
Что нельзя считать деталью реализации в этом коде? Выберите гарантию, определяющую раздел «Изменение структуры».
Вопрос 19 из 20
Команда меняет раздел «Изменение структуры» в рабочем модуле. На какое решение можно опереться при повторном запуске и отказе зависимости? Выберите практическое следствие раздела «Изменение структуры».
Вопрос 20 из 20
Какое утверждение о разделе «Изменение структуры» точно и не обещает лишнего? Ответ должен охватывать весь раздел «Изменение структуры».

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

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

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

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