Menu
Coddy logo textTech

Итоги: обобщенные функции

Часть раздела Введение в Luau путешествия по Lua на Coddy — урок 62 из 73.

challenge icon

Задание

Средне

Объедините обобщённые псевдонимы типов и обобщённые функции в одной программе.

Определите обобщённый псевдоним типа с именем Pair с двумя параметрами типа T и U, описывающий таблицу с:

  • first типа T
  • second типа U

Создайте обобщённую функцию с именем makePair, которая объявляет T и U, принимает first: T и second: U, и возвращает их упакованными в Pair<T, U>.

Создайте обобщённую функцию с именем describePair, которая объявляет T и U, принимает pair: Pair<T, U>, и возвращает строку ({first}, {second}), созданную с помощью интерполяции строк (тип возвращаемого значения string).

Затем:

  1. создайте playerScore типа Pair<string, number>, вызвав makePair("Nova", 87)
  2. создайте levelDone типа Pair<number, boolean>, вызвав makePair(3, true)
  3. выведите playerScore.first
  4. выведите playerScore.second
  5. выведите describePair(playerScore)
  6. выведите describePair(levelDone)
  7. выведите describePair(makePair("Luau", 2026)) в одну строку

Попробуйте сами

-- Напишите код здесь
-- 1) определите тип Pair<T, U> = {first: T, second: U}
-- 2) определите makePair<T, U>(first: T, second: U): Pair<T, U>
-- 3) определите describePair<T, U>(pair: Pair<T, U>): string
--    возвращающую `({pair.first}, {pair.second})`
-- 4) создайте playerScore ("Nova", 87) и levelDone (3, true),
--    затем выведите пять требуемых строк

Все уроки раздела Введение в Luau