Крутые трюки: подборка любимых

Давно я не писал здесь! Сегодня я вам покажу подборку моих любимых неочевидных трюков на lua.
Вперёд!

Странный код, не правда ли? На самом деле, он позволяет делать так:

вместо

Короче и круче ;)1)По факту, мы реализуем свою pairs

Едем дальше:

И мы можем менять поведение строк! Пример: вызовы прямо строк!

Подгружайте это дело как модуль, и готово:

Ещё существуют финализаторы, с которыми можно долго развлекаться. Один из хороших примеров:

Тоже сохраняем и юзаем как модуль. API’шник:

ФунуцияОписание
finalizers.create(name, finalizer)Принимает имя (что угодно) и финализатор (функцию), создаёт финализатор.
finalizers.delete(name)Принимает только имя (что угодно), удаляет финализатор. Примечание: если финализатора нет, сработает корректно.

И момент последний, из C API. Вам дана некая структура, которую вы хотите использовать в своём C-модуле. Конечно, можно везде писать struct structname , но можно сделать так:

И вуаля! Нет больше префикса struct !

До скорых встреч!

Примечания   [ + ]

1. По факту, мы реализуем свою pairs

Добавить комментарий