До этого момента мы просто назначали значения переменным и могли получить эти значения, обратившись по имени переменной в скрипте. Это довольно удобно для маленьких проектов, но теперь, когда вы ознакомились с функциями, это может создать некоторые проблемы: а что будет, если функции будут использовать переменные с…
Подстатья
2 5.1K
24
Название статьи поправь - "области видимости", а не просто "области". Еще лучше - "локальные переменные" т.к. о самих областях видимости сказано мало.
Замыкания как-то не очень внятно описаны - им можно целую статью посвятить, а тут пара абзацев и не совсем точно. О замыканиях на lua.org:
Вводный курс в типы Lua
Подстатья
11 10.3K
38
я, в принципе, об этом и написал
24
ScorpioT1000, ну так кто мешает запилить для этого нужные нативки в ядре и вызывать их с помощью луа?
38
Ну так надо думать о своих юзерах =) они тоже хотят полноценный язык! чВ
24
ScorpioT1000, ну булы нынче во многих языках занимают не меньше места чем инт в виде отдельных переменных, более того, в некоторых языках true и false это синтаксический сахар, а на деле используется 0 и 1. Что касается флоатов - падение производительности будет слишком большое если их заменить строками. Что касается джасcа, то не стоит путать работу в рамках закрытой системы, когда нет другого выбора и разработку своего приложения с использованием нормального языка в качестве основы, а Lua в качестве скрипта. Так что это еще вопрос кто тут бред пишет.
Еще раз подчеркну что я не рассматриваю сейчас особенности работы с Love2D.
31
Незначительная опечатка:
Мы может присвоить переменной...
Мы можем присвоить переменной... :)
исправил...
38
prog, ты честно бред говоришь сейчас =) давайте еще булы и флоаты выпилим и я могу щас твой пост так же под то что они не нужны подвести типа всё может быть стрингами...
джасс тоже не предназначался для всего этого, однако
12
Незначительная опечатка:
Мы может присвоить переменной...
Мы можем присвоить переменной... :)
24
ScorpioT1000, в lua с этим отлично справляется то что есть. Указатели и хендлы не должны доходить до луа, если это происходит - что-то не так с архитектурой. Индексы для массивов - в луа нет массивов в классическом их смысле, только ассоциативные, которые отлично понимают тот тип что используется в Lua и даже проводят оптимизацию если это возможно. Массив интов как байтов для шифрования - этим не должен заниматься Lua, а если все-же занимается, то есть в 5.2 библиотека bin32. Cто опций в одном интежере (на деле их все-же не сто, правда?), целочисленная арифметика - та-же библиотека bin32 из 5.2 версии lua.
Хочу подчеркнуть, что Lua не позиционируется как самостоятельный язык программирования - он разработан и предназначен преимущественно для интеграции в существующие системы на других языках. Можно привести тысячу примеров того, что сложно или непродуктивно или невозможно реализовать на Lua, но все они относятся к задачам, которые Lua и не должен выполнять по своей природе. В контексте платформы Love2D это, конечно, имеет несколько другой смысл - тут порой приходится писать на Lua всякое непотребство, но попытка слишком много переложить на Lua это не проблема самого Lua.
38
не сталкивался ни с жесткой необходимостью их использования
индексы для массивов? сто опций в одном интежере? целочисленная арифметика? хранение и оперирование с указателями и хендлами? массив интов как байтов для шифрования? (строка не всегда для этого полезна)