Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557

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

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

Студворк — интернет-сервис помощи студентам
Мне надо в lua функции определить переменную с поведением static, как в C++. Как это можно сделать? В lua есть для этого какой-то механизм или имитация такого поведения?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2017, 11:29
Ответы с готовыми решениями:

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

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

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

6
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
22.02.2017, 14:13
Цитата Сообщение от notAll
Мне надо в lua функции определить переменную с поведением static, как в C++.
Для чего?
Цитата Сообщение от notAll
Как это можно сделать?
Никак.
Цитата Сообщение от notAll
В lua есть для этого какой то механизм или имитация такого поведения?
С позиции официальной документации - нет.
0
 Аватар для ProgJ
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
22.02.2017, 20:18
Да, для чего?
И почему не подходит использование обычной переменной?
Вообще, можно использовать метатаблицы для этой цели
0
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
23.02.2017, 12:00  [ТС]
Цитата Сообщение от ProgJ Посмотреть сообщение
Да, для чего?
И почему не подходит использование обычной переменной?
Нужно запомнить значение возвращаемое ф-цией с С++ кода. Затем, когда луашная ф-ция будет вызываться второй раз, - сравнить сохраненное значение с новым. Как то так:
Lua
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
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
23.02.2017, 14:46
Ну дык, коли нужно запомнить, а потом "гонять" некое значение, то:
Lua
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
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
23.02.2017, 15:06  [ТС]
Ну, тогда вопрос - когда будет вызвана первая строка? При ее первом использовании (в 4 строке)?
Дело в том, что у меня в проекте эта луашная ф-ция вызываеться с С++ части. Тоесть не сам файл скрипта, а только ф-ция. В какой момент тогда инициализируються глобальные переменные в Lua?
0
 Аватар для ProgJ
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
24.02.2017, 11:56
Цитата Сообщение от notAll Посмотреть сообщение
В какой момент тогда инициализируються глобальные переменные в Lua?
В момент загрузки и выполнения файла.
В тот же самый момент, когда появляется функция foo, которая на самом деле является такой же переменной, как и needStatic, только needStatic будет upvalue для foo, а сама foo будет в глобальном окружении.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2017, 11:56
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru