Поиск по сайту
Результаты поиска по тегам 'OOP'.
Найдено 2 результата
-
Метатаблицы — это самые обыкновенные таблицы, содержащие функции, которые изменяют стандартное поведение операторов в Lua. Метатаблица в Lua может быть у любого значения, но только у каждой таблицы может быть своя метатаблица, у всех остальных же одна на всех. Так например у типа значения строки есть своя встроенная метатаблица, которая позволяет нам делать так: ("строка"):rep(10) В данной таблице присутствует поле __index. А у потоков метатаблицы нет, а надо бы!!! Но обо всём по порядку. Для установки и получения метатаблиц в Lua по стандарту существует 4 функции: setmetatable(table: table, metatable: table):table — это основная функция, которая позволяет установить таблице метатаблицу. Такая функция работает только с таблицами. getmetatable(value: value):table or value — возвращает метатаблицу, если есть или значение поля __metatable в метатаблице, если есть. Работает со всеми значениями. debug.setmetatable(value: value):boolean or table — устанавливает метатаблицу любому значению и обходит метаполе __metatable. Действительно мощная штука, вот почему её убрали в Open Computers . debug.getmetatable(value: value):table or value — возвращает метатаблицу, обходя поле __metatable. Также отсутствует в OC. Теперь, я думаю, можно приступить к самим метаметодам. Для своего, а может быть и вашего удобства я их разделю на четыре категории: Разное Математические Сравнение Битовые операторы
- 20 ответов
-
- 12
-
§">topart LuaInteger library Библиотека для работы с разными системами счисления на чистом Lua. §">toc Содержание: §">toc Содержание §">about Описание §">doc Документация §">todec toDec §">fromdec fromDec §">custominteger CustomInteger §">customintegerto :to §">hexinteger HexInteger §">octinteger OctInteger §">bininteger BinInteger §">decinteger DecInteger §">get Скачать §">about Описание: Однажды @qwertyMAN написал библиотеку для работы с числами. Функции она предоставляла довольно нужные, но возможности у нее никакие - нельзя работать с нашими числами (умножать, вычитать, делить, сравнивать и т.д.), да и ООП там никакого и не было. Поэтому я решил написать свою библиотеку с блэкдж.... ООП и арифметикой. §">doc Документация: §">todec toDec(number: number, number: base) - number: result - переводит одну систему счисления в десятичную. Принимает число, которое будут переводить (обязательно в виде строки, например "FFFFFF") и основание системы счисления из которой переводят (например 16). Пример: print(int.toDec("F", 16)) -- 15 §">fromdec fromDec(number: number, number: base) - string: result - переводит десятичную систему счисления в другую с основанием base (например 16). Пример: print(int.fromDec(15, 16)) -- F §">custominteger class CustomInteger(string: number, number: base) - CustomInteger instance - класс системы счисления. Принимает число в виде строки, и его основание. С объектом мы можем делать любые действия (+, -, /, *, %, ==, >, <, >=, <=, ^) §">customintegerto :to(number: base) - string: result - переводит наш объект в другую систему счисления. Пример: a = CustomInteger("F", 16) print(a:to(10)) -- 15 §">hexinteger class HexInteger(string: number) - HexInteger instance - ссылка на CustomInteger с основанием 16 §">octinteger class OctInteger(string: number) - OctInteger instance - ссылка на CustomInteger с основанием 8 §">bininteger class BinInteger(string: number) - BinInteger instance - ссылка на CustomInteger с основанием 2 §">decinteger class DecInteger(string: number) - DecInteger instance - ссылка на CustomInteger с основанием 10 §">get Скачать: Ссылка на скачивание: http://pastebin.com/yg487hJ9 Библиотека написана на moonscript, поэтому если вы хотите получить moon исходник, напишите мне в личку.