Форум программистов, компьютерный форум, киберфорум
Наши страницы

Lua

Войти
Регистрация
Восстановить пароль
 
notAll
440 / 162 / 39
Регистрация: 27.05.2016
Сообщений: 437
Завершенные тесты: 2
#1

Статическая переменная? - Lua

22.02.2017, 11:29. Просмотров 936. Ответов 6
Метки нет (Все метки)

Мне надо в lua функции определить переменную с поведением static, как в C++. Как это можно сделать? В lua есть для этого какой-то механизм или имитация такого поведения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2017, 11:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Статическая переменная? (Lua):

Проверка является ли переменная числом - Lua
Всем привет! Столкнулся с проблемой: Вводится число с клавиатуры, надо проверить что-бы это было четырехзначное число. Примеры : 0000,...

Модульная переменная или блочная статическая переменная: что лучше - Visual Basic .NET
Переменная (тип String) нужна на всем протяжении работы программы. Нужен совет опытных - что предпочтительнее: модульная переменная или...

Статическая переменная - PHP
<html><body> <?php function selfcount() { static $count = 0; $count++; echo $count; } for($i=0; $i<5; $i++) selfcount();...

Статическая переменная - C++
Добрый день! Объясните пожалуйста, что такое статическая переменная, в каких случаях лучше использовать именно её и чем она вообще...

Статическая локальная переменная - C++
Помогите пожалуйста привести пример использования статической локальной переменной в функции

Статическая переменная в delphi - Delphi
Здравствуйте! Не подскажете есть ли в делфи статическая переменная как в С++. У которой время жизни = времени работы программы? Заранее...

6
greg zakharov
Покинул форум
1925 / 801 / 201
Регистрация: 07.05.2015
Сообщений: 1,609
Записей в блоге: 33
22.02.2017, 14:13 #2
Цитата Сообщение от notAll
Мне надо в lua функции определить переменную с поведением static, как в C++.
Для чего?
Цитата Сообщение от notAll
Как это можно сделать?
Никак.
Цитата Сообщение от notAll
В lua есть для этого какой то механизм или имитация такого поведения?
С позиции официальной документации - нет.
0
ProgJ
87 / 85 / 10
Регистрация: 20.11.2008
Сообщений: 724
22.02.2017, 20:18 #3
Да, для чего?
И почему не подходит использование обычной переменной?
Вообще, можно использовать метатаблицы для этой цели
0
notAll
440 / 162 / 39
Регистрация: 27.05.2016
Сообщений: 437
Завершенные тесты: 2
23.02.2017, 12:00  [ТС] #4
Цитата Сообщение от ProgJ Посмотреть сообщение
Да, для чего?
И почему не подходит использование обычной переменной?
Нужно запомнить значение возвращаемое ф-цией с С++ кода. Затем, когда луашная ф-ция будет вызываться второй раз, - сравнить сохраненное значение с новым. Как то так:
C++
1
2
3
4
5
6
7
8
9
function foo()
    -- remember first function call 
    local needStatic = someClass:funcCanReturnDifferentVariables()
    
    local current = someClass:funcCanReturnDifferentVariables()
    if   current ~= needStatic then
        -- do someting
    end 
end
0
greg zakharov
Покинул форум
1925 / 801 / 201
Регистрация: 07.05.2015
Сообщений: 1,609
Записей в блоге: 33
23.02.2017, 14:46 #5
Ну дык, коли нужно запомнить, а потом "гонять" некое значение, то:
C++
1
2
3
4
5
6
7
local needStatic = someClass:funcCanReturnDifferentVariables()
function foot()
  local current = someClass:funcCanReturnDifferentVariables()
  if needStatic ~= current then
    -- do something
  end
end
1
notAll
440 / 162 / 39
Регистрация: 27.05.2016
Сообщений: 437
Завершенные тесты: 2
23.02.2017, 15:06  [ТС] #6
Ну, тогда вопрос - когда будет вызвана первая строка? При ее первом использовании (в 4 строке)?
Дело в том, что у меня в проекте эта луашная ф-ция вызываеться с С++ части. Тоесть не сам файл скрипта, а только ф-ция. В какой момент тогда инициализируються глобальные переменные в Lua?
0
ProgJ
87 / 85 / 10
Регистрация: 20.11.2008
Сообщений: 724
24.02.2017, 11:56 #7
Цитата Сообщение от notAll Посмотреть сообщение
В какой момент тогда инициализируються глобальные переменные в Lua?
В момент загрузки и выполнения файла.
В тот же самый момент, когда появляется функция foo, которая на самом деле является такой же переменной, как и needStatic, только needStatic будет upvalue для foo, а сама foo будет в глобальном окружении.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2017, 11:56
Привет! Вот еще темы с ответами:

Статическая переменная в классе - C++
Нужно вывести на экран порядковый номер объекта, используя статическую переменную для подсчета общего количества объектов #include...

Статическая переменная в шаблоне - C++
// // (---.Array_hpp---) // #ifndef Array_HPP // Preprocessor gates #define Array_HPP #include...

Статическая переменная в рекурсивной функции - PHP
Есть рекурсивная функция для сканирования директории: <? function scan(&$dir) { $list = ""; ...

Статическая переменная внутри метода - Java
Можно ли создать статическую переменную внутри метода, которая относилась бы именно к этому методу, а не ко всему классу? (дело в том, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru