<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[QUIK -> DDE &mdash; Особенности Lua 5.4]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=374</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=374&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Особенности Lua 5.4».]]></description>
		<lastBuildDate>Mon, 15 Aug 2022 12:29:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Особенности Lua 5.4]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3536#p3536</link>
			<description><![CDATA[<div class="quotebox"><cite>s_mike пишет:</cite><blockquote><p>&lt;const&gt; и &lt;clear&gt;</p></blockquote></div><p>Ух ты! Почитал - прикольно.</p><div class="quotebox"><cite>s_mike пишет:</cite><blockquote><p>Другая логика сборщика мусора</p></blockquote></div><p>Это я отношу к внутренним потрошкам, которые по идее программиста заботить на должны (на мой взгляд). Лишь бы сборщик работал <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Это лишь мое мнение.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Mon, 15 Aug 2022 12:29:22 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3536#p3536</guid>
		</item>
		<item>
			<title><![CDATA[Re: Особенности Lua 5.4]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3535#p3535</link>
			<description><![CDATA[<p>&lt;const&gt; и &lt;clear&gt;<br />Другая логика сборщика мусора<br />новые метаметоды (не знаю, может, они в еще 5.3 появились)</p>]]></description>
			<author><![CDATA[null@example.com (s_mike)]]></author>
			<pubDate>Mon, 15 Aug 2022 10:49:07 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3535#p3535</guid>
		</item>
		<item>
			<title><![CDATA[Re: Особенности Lua 5.4]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3496#p3496</link>
			<description><![CDATA[<p>Напишите кто еще какие изменения заметил, будут добавлять всё в первый пост темы.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Wed, 13 Jul 2022 08:47:14 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3496#p3496</guid>
		</item>
		<item>
			<title><![CDATA[Особенности Lua 5.4]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3495#p3495</link>
			<description><![CDATA[<p>В Lua версии 5.4 появились некоторые отличия от Lua 5.1 и 5.2.<br />В этой теме предлагаю собрать все неожиданные изменения синтаксиса / функций. Речь именно про особенности Lua-интерпретатора, не связанных с версиями терминала QUIK.</p><p>1. В Lua 5.3 появились [url=https://quik2dde.ru/viewtopic.php?id=370]встроенные битовые операции[/url], заменяющие библиотеку bit.</p><p>2. unpack() --&gt; table.unpack() (неожиданно, Lua 5.4)</p><p>3. Константные локальные переменные &lt;const&gt; (Lua 5.4)<br />Атрибут доступен только для локальных переменных.<br /></p><div class="codebox"><pre><code>local a &lt;const&gt; = 5
a = 8  -- здесь будет ошибка &quot;attempt to assign to const variable &#039;a&#039;&quot;</code></pre></div><p>4. Автоматически &quot;закрываемые&quot; переменные (<em>To-be-closed Variables</em>) (Lua 5.4)<br />При объявлении переменной с атрибутом&nbsp; &lt;close&gt; после покидании блока, где она объявлена, для неё будет автоматически вызван метаметод __close. Причем вызовется он как при нормальном ходе программы, так и при ошибке. Т.е. мы получили этакие штатные &quot;деструкторы&quot;.<br /></p><div class="codebox"><pre><code>function f()
    local t &lt;close&gt; = setmetatable({ 1, 2, 3 }, {
        __close = function(x)
                    print(&quot;__close&quot;)
                  end
    })
end

print(1)
f()
print(2)</code></pre></div><p>Напечатает:<br /></p><div class="codebox"><pre><code>1
__close
2</code></pre></div><p>В качестве параметра в __close передается значение таблицы.</p><p>Если метаметода __close нет, то будет выдана ошибка:<br /></p><div class="codebox"><pre><code>local r &lt;close&gt; = {} -- variable &#039;r&#039; got a non-closable value</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Wed, 13 Jul 2022 08:46:08 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3495#p3495</guid>
		</item>
	</channel>
</rss>
