Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lua
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
notAll
450 / 171 / 62
Регистрация: 27.05.2016
Сообщений: 457
Завершенные тесты: 2
1

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

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

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

Проверка является ли переменная числом
Всем привет! Столкнулся с проблемой: Вводится число с клавиатуры, надо...

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

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

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

Статическая переменная
Всем привет! :) Совсем недавно только начал изучать C++, ранее все писал на...

6
greg zakharov
Покинул форум
1954 / 827 / 239
Регистрация: 07.05.2015
Сообщений: 1,659
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
450 / 171 / 62
Регистрация: 27.05.2016
Сообщений: 457
Завершенные тесты: 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
Покинул форум
1954 / 827 / 239
Регистрация: 07.05.2015
Сообщений: 1,659
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
450 / 171 / 62
Регистрация: 27.05.2016
Сообщений: 457
Завершенные тесты: 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
24.02.2017, 11:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2017, 11:56

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

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

Статическая переменная в delphi
Здравствуйте! Не подскажете есть ли в делфи статическая переменная как в С++. У...


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

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

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