1 | ||||||
В чем разница записей07.11.2015, 23:02. Показов 1355. Ответов 12
Метки нет (Все метки)
Всем привет. Есть ли какая-то разница в этих двух способах определения поля таблицы как метода? Если есть, то при каких условиях какой метод будет лучше?
Вопрос №2: Объекты объявленные в теле функции по дефолту считаются локальными относительно области видимости самой функции или нужно явно указывать local?
0
|
07.11.2015, 23:02 | |
Ответы с готовыми решениями:
12
int const и const int в чем разница этих записей Разница в времени записей в календаре пользователя в чем разница в чем разница |
08.11.2015, 00:30 | 2 | |||||||||||||||||||||||||
Сообщение было отмечено Nikropolb как решение
Решение
В данном случае имхо разницы никакой.
Разница может появится при использовании self. Например:
>Вопрос №2.....
1
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
|
08.11.2015, 14:44 | 4 |
Ещё по поводу разницы
В случае использования рекурсии в локальных функциях, т.е. видимости локальной функцией себя самой Вариант local f=function() f() end не является рекурсией. Тут внутри f или глобальная или определённая ранее локальная (upvalue) Для рекурсии локальных функций делают или так local f; f=function() f() end или так local function f() f() end
1
|
08.11.2015, 18:20 [ТС] | 5 | ||||||||||
ProgJ
Спасибо! Еще вопрос. Где я допустил ошибку? При добавлении поля, и его чтении методы в __index, и __newindex не вызываются.
Но если записать в виде описанном ниже то работает как надо! Почему так?
В lua нельзя задавать поведение таблицы в "специальных случаях" на прямую? Обязательно нужна дополнительная таблица с реализацией нужного функционала?
0
|
08.11.2015, 22:30 | 6 | |||||
Вот простенький скрипт, позволяющий выводить таблицы на "чистую воду":
1
|
09.11.2015, 13:15 [ТС] | 7 | ||||||||||
vantfiles
Спасибо! Работая с мета-таблицами заметил странное поведение. Если установить мате-таблицу в таком порядке инструкций то функции __index, и __newindex не будут вызываться.
В первом случае я ожидаю вывод "Index Index", а в итоге ничего.
0
|
09.11.2015, 14:53 | 8 | ||||||||||
Все как обычно очень просто:
Метаметод __index вызывается тогда и только тогда, когда он определен в метатаблице и обращение к таблице-хозяйке-метатаблицы производится по несуществующему индексу. Вариант 1:
1
|
09.11.2015, 17:30 [ТС] | 9 | |||||
vantfiles
Понял. Спасибо разъяснения! Добавлено через 2 часа 6 минут Практикуя пседво ООП наткнулся на проблему. Имеем следующий код.
Есть ли красивые решения как сделать так что-бы self указывал на Base таблицу?
0
|
15.11.2015, 13:00 [ТС] | 13 |
vantfiles
Буду рад любым советам!
0
|
15.11.2015, 13:00 | |
15.11.2015, 13:00 | |
Помогаю со студенческими работами здесь
13
В чем разница? В чем разница B чем разница? В чем разница? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |