Итоги: Определение структуры таблиц
Часть раздела Введение в Luau путешествия по Lua на Coddy — урок 44 из 73.
Задание
СреднеСоздайте псевдоним типа с именем Computer со следующими полями:
idтипаnumberbrandтипаstringramInGBтипаnumber?(optional)boot— метод(self: Computer) -> ()
Создайте два компьютера (прикрепите метод boot с помощью синтаксиса определения через двоеточие):
workstation— id1001, brand"Dell", ramInGB16; его методbootвыводит[brand] is booting up...laptop— id1002, brand"MacBook", без ramInGB; его методbootвыводит[brand] is starting...
Создайте функцию specs, которая принимает Computer и возвращает string: [brand] with [ramInGB] GB of RAM, если RAM указана, иначе [brand] with unknown RAM.
Затем последовательно:
- вызовите
workstation:boot() - вызовите
laptop:boot() - напечатайте
specs(workstation) - напечатайте
specs(laptop) - напечатайте id для
workstation
Попробуйте сами
-- Напишите код здесь
-- 1) определите тип Computer (опциональный ramInGB, метод boot)
-- 2) создайте workstation и laptop, прикрепите boot с синтаксисом двоеточия
-- 3) напишите specs с проверкой на nil для ramInGB
-- 4) загрузите оба, выведите оба specs, выведите workstation.id
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции, ничего не возвращающиеНеобязательные параметрыЗначения параметров по умолчаниюФункции с переменным числом аргументовОпределение типов функцийИтоги: типизированные функции2Базовые типы
Основные типы: num, str, boolТип 'any': лазейка в типизацииТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовИтоги: практика по базовым типам5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: Массивы и Map-словари
Типизированные массивыДобавление и чтение элементовЧто такое тип Map?Объявление и доступ к Map-словарямИтерация по таблицамТаблицы смешанной формыМногомерные типизированные массивыtable.unpack и VarargsИтоги: Массивы и Map-словари6Типизация структуры таблиц
Встроенные аннотации структурПсевдонимы типов для структурНеобязательные свойстваСтруктурированные и произвольные таблицыРасширение структурДобавление методов в структурыМетоды с Self и двоеточиемИтоги: Определение структуры таблиц