<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Удаление переменных]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Удаление переменных форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 29 Apr 2026 19:08:44 +0300</pubDate>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31593/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Самый простой путь -это поместить все глобальные переменные в единую таблицу и в нужный момент сделать её пустой простым присвоением. &nbsp; <br />
			<i>08.06.2018 16:58:07, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31593/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31593/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 16:58:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31582/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_YaYenoQP" href="/user/11759/" bx-tooltip-user-id="11759">Archie_</a> написал:<br />А можно небольшой пример!?<br />=============<br />Сброс глобальных переменных объявляемых внутри блока:
====code====
<pre>function save_globals()
&nbsp;&nbsp;&nbsp;&nbsp;old_G = {} for k, v in pairs(_G) do old_G&#91;k&#93;=v end
end

function clear_globals()
&nbsp;&nbsp;&nbsp;&nbsp;for k, v in pairs(_G) do if not old_G&#91;k&#93; then _G&#91;k&#93;=nil end end
end

save_globals()
a, b, c = 5, 10, 15
print(a, b, c)
clear_globals()
print(a, b, c)</pre>
=============
Вывод:
====code====
<pre>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15
nil&nbsp;&nbsp;&nbsp;&nbsp; nil&nbsp;&nbsp;&nbsp;&nbsp; nil</pre>
=============
<br />Можно также решить задачу со сбросом глобальных переменных объявленных до блока, но код будет сложнее, с подменой _G через setfenv и метометодами. <br />
			<i>08.06.2018 11:37:47, Suntor.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31582/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31582/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 11:37:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31580/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_TtYzrUlD" href="/user/901/" bx-tooltip-user-id="901">Suntor</a> написал:<br />Если это глобальные переменные и они не были объявлены заранее до указанного блока кода, то можно. <br />=============<br /><br />Да, до указанного блока они &nbsp;не были объявлены<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_mO6OKGG5" href="/user/901/" bx-tooltip-user-id="901">Suntor</a> написал:<br />Сохранив содержимое глобальной таблицы _G в отдельную переменную перед блоком<br />=============<br /><br />А можно небольшой пример!? <br />
			<i>08.06.2018 11:07:50, Archie_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31580/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31580/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 11:07:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31577/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_dDdbfZjt" href="/user/11759/" bx-tooltip-user-id="11759">Archie_</a> написал:<br />А если не локальные,то можно как нибудь сбросить?<br />=============<br />Если это глобальные переменные и они не были объявлены заранее до указанного блока кода, то можно. Сохранив содержимое глобальной таблицы _G в отдельную переменную перед блоком, а после блока сравнив _G с сохранённой таблицей и обнулив все переменные появившиеся в _G. <br />
			<i>08.06.2018 10:47:39, Suntor.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31577/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31577/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 10:47:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31575/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_cAUZZDfL" href="/user/901/" bx-tooltip-user-id="901">Suntor</a> написал:<br />локальные переменные можно сбросить такой вот глобальной функцией:<br /><br />=============<br /><I>Спасибо огромное !</I><br /><I>----------------------------</I><br />А если не локальные,то можно как нибудь сбросить?<br />например: есть цикл, в нем много переменных ,но какие то переменные я забыл объявить локальными и на выходе мне надо их сбросить<br /><br />Небольшой пример
====code====
<pre>for i = 1,100 do
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;local a = 5 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b = 10
&nbsp;&nbsp;&nbsp;&nbsp;local c = 10 + a
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = 10 + b
&nbsp;&nbsp;&nbsp;local e = 10 + c
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = a + e
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g = f + a
&nbsp;&nbsp;&nbsp;local h = b * 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;print(i..')'..'&#92;n',a,b,c,d,e,f,g,h)
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;if i == 10 then break end
end
print('И здесь надо что бы все переменные стали nil') 
</pre>
============= <br />
			<i>08.06.2018 10:33:52, Archie_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31575/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31575/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 10:33:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31568/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Смотря какие переменные и из какой области видимости... Для примера, локальные переменные можно сбросить такой вот глобальной функцией:
====code====
<pre>function clear_locals()
&nbsp;&nbsp;&nbsp;&nbsp;local l = 1 while debug.getlocal(2, l) do debug.setlocal(2, l, nil) l = l+1 end
end

local a = 5
local b = 10
local c = 15
print(a, b, c)
clear_locals()
print(a, b, c)</pre>
=============
Вывод:
====code====
<pre>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15
nil&nbsp;&nbsp;&nbsp;&nbsp; nil&nbsp;&nbsp;&nbsp;&nbsp; nil</pre>
============= <br />
			<i>08.06.2018 04:01:02, Suntor.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31568/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31568/topic3716/</guid>
			<pubDate>Fri, 08 Jun 2018 04:01:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление переменных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31565/topic3716/">Удаление переменных</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Возможно ли в lua удалить все переменные ,<br />что бы они в какой то момент все стали nil<br />что бы не прописывать их все вручную <br />
			<i>07.06.2018 16:54:08, Archie_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31565/topic3716/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31565/topic3716/</guid>
			<pubDate>Thu, 07 Jun 2018 16:54:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
