<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: bshl / bshr metamethods]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме bshl / bshr metamethods форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 02 May 2026 15:03:39 +0300</pubDate>
		<item>
			<title>bshl / bshr metamethods</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64182/topic7471/">bshl / bshr metamethods</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Скажу Вам по секрету, <br />лучше читать не на заборе, особенно , если там написано русскими словами,<br />как правило, те кто пишет на русском списывают это с англоязычных сайтов и с ошибками,<br />а начинать читать с первоисточника.<br />-------------------<br />Например , в Вашем случае, смотрим документацию на Lua 5.3 (5.4)<table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td><span class="bx-font" style="color:#000000"><span class="bx-font" style="font-family:Helvetica, Arial, sans-serif"><span class="bx-font" style="font-size:x-large;"><div align="justify">A detailed list of events controlled by metatables is given next. Each operation is identified by its corresponding key.</div></span></span></span><ul><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__add</span>: </B>the addition (<span class="bx-font" style="font-size:12pt; line-height: normal;">+</span>) operation. If any operand for an addition is not a number (nor a string coercible to a number), Lua will try to call a metamethod. First, Lua will check the first operand (even if it is valid). If that operand does not define a metamethod for <span class="bx-font" style="font-size:12pt; line-height: normal;">__add</span>, then Lua will check the second operand. If Lua can find a metamethod, it calls the metamethod with the two operands as arguments, and the result of the call (adjusted to one value) is the result of the operation. Otherwise, it raises an error.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__sub</span>: </B>the subtraction (<span class="bx-font" style="font-size:12pt; line-height: normal;">-</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__mul</span>: </B>the multiplication (<span class="bx-font" style="font-size:12pt; line-height: normal;">*</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__div</span>: </B>the division (<span class="bx-font" style="font-size:12pt; line-height: normal;">/</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__mod</span>: </B>the modulo (<span class="bx-font" style="font-size:12pt; line-height: normal;">%</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__pow</span>: </B>the exponentiation (<span class="bx-font" style="font-size:12pt; line-height: normal;">^</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__unm</span>: </B>the negation (unary <span class="bx-font" style="font-size:12pt; line-height: normal;">-</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__idiv</span>: </B>the floor division (<span class="bx-font" style="font-size:12pt; line-height: normal;">//</span>) operation. Behavior similar to the addition operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__band</span>: </B>the bitwise AND (<span class="bx-font" style="font-size:12pt; line-height: normal;">&amp;</span>) operation. Behavior similar to the addition operation, except that Lua will try a metamethod if any operand is neither an integer nor a value coercible to an integer (see <noindex><a href="https://www.lua.org/manual/5.3/manual.html#3.4.3" target="_blank" rel="nofollow">§3.4.3</a></noindex>).<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bor</span>: </B>the bitwise OR (<span class="bx-font" style="font-size:12pt; line-height: normal;">|</span>) operation. Behavior similar to the bitwise AND operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bxor</span>: </B>the bitwise exclusive OR (binary <span class="bx-font" style="font-size:12pt; line-height: normal;">~</span>) operation. Behavior similar to the bitwise AND operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bnot</span>: </B>the bitwise NOT (unary <span class="bx-font" style="font-size:12pt; line-height: normal;">~</span>) operation. Behavior similar to the bitwise AND operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__shl</span>: </B>the bitwise left shift (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;&lt;</span>) operation. Behavior similar to the bitwise AND operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__shr</span>: </B>the bitwise right shift (<span class="bx-font" style="font-size:12pt; line-height: normal;">&gt;&gt;</span>) operation. Behavior similar to the bitwise AND operation.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__concat</span>: </B>the concatenation (<span class="bx-font" style="font-size:12pt; line-height: normal;">..</span>) operation. Behavior similar to the addition operation, except that Lua will try a metamethod if any operand is neither a string nor a number (which is always coercible to a string).<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__len</span>: </B>the length (<span class="bx-font" style="font-size:12pt; line-height: normal;">#</span>) operation. If the object is not a string, Lua will try its metamethod. If there is a metamethod, Lua calls it with the object as argument, and the result of the call (always adjusted to one value) is the result of the operation. If there is no metamethod but the object is a table, then Lua uses the table length operation (see <noindex><a href="https://www.lua.org/manual/5.3/manual.html#3.4.7" target="_blank" rel="nofollow">§3.4.7</a></noindex>). Otherwise, Lua raises an error.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__eq</span>: </B>the equal (<span class="bx-font" style="font-size:12pt; line-height: normal;">==</span>) operation. Behavior similar to the addition operation, except that Lua will try a metamethod only when the values being compared are either both tables or both full userdata and they are not primitively equal. The result of the call is always converted to a boolean.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span>: </B>the less than (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;</span>) operation. Behavior similar to the addition operation, except that Lua will try a metamethod only when the values being compared are neither both numbers nor both strings. The result of the call is always converted to a boolean.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span>: </B>the less equal (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;=</span>) operation. Unlike other operations, the less-equal operation can use two different events. First, Lua looks for the <span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span> metamethod in both operands, like in the less than operation. If it cannot find such a metamethod, then it will try the <span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span> metamethod, assuming that <span class="bx-font" style="font-size:12pt; line-height: normal;">a &lt;= b</span> is equivalent to <span class="bx-font" style="font-size:12pt; line-height: normal;">not (b &lt; a)</span>. As with the other comparison operators, the result is always a boolean. (This use of the <span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span> event can be removed in future versions; it is also slower than a real <span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span> metamethod.)<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__index</span>: </B>The indexing access operation <span class="bx-font" style="font-size:12pt; line-height: normal;">table&#91;key&#93;</span>. This event happens when <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span> is not a table or when <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span> is not present in <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>. The metamethod is looked up in <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>.<p>Despite the name, the metamethod for this event can be either a function or a table. If it is a function, it is called with <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span> and <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span> as arguments, and the result of the call (adjusted to one value) is the result of the operation. If it is a table, the final result is the result of indexing this table with <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>. (This indexing is regular, not raw, and therefore can trigger another metamethod.)</p><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__newindex</span>: </B>The indexing assignment <span class="bx-font" style="font-size:12pt; line-height: normal;">table&#91;key&#93; = value</span>. Like the index event, this event happens when <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span> is not a table or when <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span> is not present in <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>. The metamethod is looked up in <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>.<p>Like with indexing, the metamethod for this event can be either a function or a table. If it is a function, it is called with <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>, <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>, and <span class="bx-font" style="font-size:12pt; line-height: normal;">value</span> as arguments. If it is a table, Lua does an indexing assignment to this table with the same key and value. (This assignment is regular, not raw, and therefore can trigger another metamethod.)</p><p>Whenever there is a <span class="bx-font" style="font-size:12pt; line-height: normal;">__newindex</span> metamethod, Lua does not perform the primitive assignment. (If necessary, the metamethod itself can call <noindex><a href="https://www.lua.org/manual/5.3/manual.html#pdf-rawset" target="_blank" rel="nofollow"><span class="bx-font" style="font-size:12pt; line-height: normal;">rawset</span></a></noindex> to do the assignment.)</p><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__call</span>: </B>The call operation <span class="bx-font" style="font-size:12pt; line-height: normal;">func(args)</span>. This event happens when Lua tries to call a non-function value (that is, <span class="bx-font" style="font-size:12pt; line-height: normal;">func</span> is not a function). The metamethod is looked up in <span class="bx-font" style="font-size:12pt; line-height: normal;">func</span>. If present, the metamethod is called with <span class="bx-font" style="font-size:12pt; line-height: normal;">func</span> as its first argument, followed by the arguments of the original call (<span class="bx-font" style="font-size:12pt; line-height: normal;">args</span>). All results of the call are the result of the operation. (This is the only metamethod that allows multiple results.)<br /></ul></td></tr></tbody></table>что в переводе гугла означает:<table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td><span class="bx-font" style="color:#000000"><span class="bx-font" style="font-family:Helvetica, Arial, sans-serif"><span class="bx-font" style="font-size:x-large;"><div align="justify">Далее приведен подробный список событий, управляемых метатаблицами. Каждая операция идентифицируется соответствующей клавишей.</div></span></span></span><ul><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__add</span>:</B> операция сложения (<span class="bx-font" style="font-size:12pt; line-height: normal;">+</span>). Если какой-либо операнд для сложения не является числом (или строкой, приводимой к числу), Lua попытается вызвать метаметод. Сначала Lua проверит первый операнд (даже если он действителен). Если этот операнд не определяет метаметод для <span class="bx-font" style="font-size:12pt; line-height: normal;">__add</span>, тогда Lua проверит второй операнд. Если Lua может найти метаметод, он вызывает метаметод с двумя операндами в качестве аргументов, и результат вызова (скорректированный на одно значение) является результатом операции. В противном случае возникает ошибка.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__sub</span>:</B> операция вычитания (<span class="bx-font" style="font-size:12pt; line-height: normal;">-</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__mul</span>:</B> операция умножения (<span class="bx-font" style="font-size:12pt; line-height: normal;">*</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__div</span>:</B> операция разделения (<span class="bx-font" style="font-size:12pt; line-height: normal;">/</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__mod</span>:</B> операция modulo (<span class="bx-font" style="font-size:12pt; line-height: normal;">%</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__pow</span>:</B> операция возведения в степень (<span class="bx-font" style="font-size:12pt; line-height: normal;">^</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__unm</span>:</B> операция отрицания (унарная<span class="bx-font" style="font-size:12pt; line-height: normal;">-</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__idiv</span>:</B> операция разделения этажей (<span class="bx-font" style="font-size:12pt; line-height: normal;">//</span>). Поведение аналогично операции сложения.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__band</span>:</B> побитовая операция И (<span class="bx-font" style="font-size:12pt; line-height: normal;">&amp;</span>). Поведение аналогично операции сложения, за исключением того, что Lua попытается выполнить метаметод, если какой-либо операнд не является ни целым числом, ни значением, приводимым к целому числу (см. <noindex><a href="https://www.lua.org/manual/5.3/manual.html#3.4.3" target="_blank" rel="nofollow">§3.4.3</a></noindex>).<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bor</span>:</B> побитовая операция ИЛИ (<span class="bx-font" style="font-size:12pt; line-height: normal;">|</span>). Поведение аналогично побитовой операции И.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bxor</span>:</B> побитовая исключающая ИЛИ (двоичная<span class="bx-font" style="font-size:12pt; line-height: normal;">~</span>) операция. Поведение аналогично побитовой операции И.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__bnot</span>:</B> побитовая НЕ (унарная<span class="bx-font" style="font-size:12pt; line-height: normal;">~</span>) операция. Поведение аналогично побитовой операции И.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__shl</span>:</B> операция побитового сдвига влево (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;&lt;</span>). Поведение аналогично побитовой операции И.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__shr</span>:</B> операция побитового сдвига вправо (<span class="bx-font" style="font-size:12pt; line-height: normal;">&gt;&gt;</span>). Поведение аналогично побитовой операции И.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__concat</span>:</B> операция конкатенации (<span class="bx-font" style="font-size:12pt; line-height: normal;">..</span>). Поведение аналогично операции сложения, за исключением того, что Lua попытается выполнить метаметод, если какой-либо операнд не является ни строкой, ни числом (что всегда приводит к строке).<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__len</span>:</B> операция length (<span class="bx-font" style="font-size:12pt; line-height: normal;">#</span>). Если объект не является строкой, Lua попробует его метаметод. Если существует метаметод, Lua вызывает его с объектом в качестве аргумента, и результатом вызова (всегда с поправкой на одно значение) является результат операции. Если метаметода нет, но объект представляет собой таблицу, тогда Lua использует операцию длины таблицы (см. <noindex><a href="https://www.lua.org/manual/5.3/manual.html#3.4.7" target="_blank" rel="nofollow">§3.4.7</a></noindex>). В противном случае Lua выдает ошибку.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__eq</span>:</B> операция equal (<span class="bx-font" style="font-size:12pt; line-height: normal;">==</span>). Поведение, аналогичное операции сложения, за исключением того, что Lua будет использовать метаметод только тогда, когда сравниваемые значения являются либо обеими таблицами, либо обеими полными пользовательскими данными, и они не являются примитивно равными. Результат вызова всегда преобразуется в логическое значение.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span>:</B> операция меньше, чем (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;</span>) . Поведение аналогично операции сложения, за исключением того, что Lua будет использовать метаметод только тогда, когда сравниваемые значения не являются ни обоими числами, ни обеими строками. Результат вызова всегда преобразуется в логическое значение.<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span>:</B> операция less equal (<span class="bx-font" style="font-size:12pt; line-height: normal;">&lt;=</span>) . В отличие от других операций, операция с меньшим равенством может использовать два разных события. Во-первых, Lua ищет <span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span>метаметод в обоих операндах, как в операции меньше, чем. Если он не может найти такой метаметод, то он попробует <span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span>метаметод, предполагая, что <span class="bx-font" style="font-size:12pt; line-height: normal;">a &lt;= b</span>это эквивалентно <span class="bx-font" style="font-size:12pt; line-height: normal;">not (b &lt; a)</span>. Как и в случае с другими операторами сравнения, результатом всегда является логическое значение. (Это использование <span class="bx-font" style="font-size:12pt; line-height: normal;">__lt</span>события может быть удалено в будущих версиях; это также медленнее, чем настоящий <span class="bx-font" style="font-size:12pt; line-height: normal;">__le</span>метаметод.)<br /><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__index</span>:</B> Операция доступа к индексации <span class="bx-font" style="font-size:12pt; line-height: normal;">table&#91;key&#93;</span>. Это событие происходит, когда <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>не является таблицей или когда <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>отсутствует в <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>. Метаметод ищется в .<span class="bx-font" style="font-size:12pt; line-height: normal;">table</span><p>Несмотря на название, метаметод для этого события может быть либо функцией, либо таблицей. Если это функция, она вызывается с <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>аргументами и <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>в качестве аргументов, а результат вызова (скорректированный на одно значение) является результатом операции. Если это таблица, конечный результат является результатом индексации этой таблицы с <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>помощью . (Это индексирование является обычным, а не необработанным, и поэтому может вызвать другой метаметод.)</p><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__newindex</span>:</B> Назначение индексации <span class="bx-font" style="font-size:12pt; line-height: normal;">table&#91;key&#93; = value</span>. Как и событие index, это событие происходит, когда <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>не является таблицей или когда <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>отсутствует в <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>. Метаметод ищется в .<span class="bx-font" style="font-size:12pt; line-height: normal;">table</span><p>Как и в случае с индексацией, метаметодом для этого события может быть либо функция, либо таблица. Если это функция, она вызывается с <span class="bx-font" style="font-size:12pt; line-height: normal;">table</span>, <span class="bx-font" style="font-size:12pt; line-height: normal;">key</span>, и <span class="bx-font" style="font-size:12pt; line-height: normal;">value</span>в качестве аргументов. Если это таблица, Lua выполняет индексирование для этой таблицы с тем же ключом и значением. (Это назначение является обычным, а не необработанным, и поэтому может вызвать другой метаметод.)</p><p>Всякий раз, когда существует <span class="bx-font" style="font-size:12pt; line-height: normal;">__newindex</span>метаметод, Lua не выполняет назначение примитива. (При необходимости сам метаметод может быть вызван <noindex><a href="https://www.lua.org/manual/5.3/manual.html#pdf-rawset" target="_blank" rel="nofollow"><span class="bx-font" style="font-size:12pt; line-height: normal;">rawset</span></a></noindex>для выполнения назначения.)</p><li><B><span class="bx-font" style="font-size:12pt; line-height: normal;">__call</span>:</B> Операция вызова <span class="bx-font" style="font-size:12pt; line-height: normal;">func(args)</span>. Это событие происходит, когда Lua пытается вызвать нефункциональное значение (то <span class="bx-font" style="font-size:12pt; line-height: normal;">func</span>есть не является функцией). Метаметод ищется в .<span class="bx-font" style="font-size:12pt; line-height: normal;">func</span> Если присутствует, метаметод вызывается с <span class="bx-font" style="font-size:12pt; line-height: normal;">func</span>первым аргументом, за которым следуют аргументы исходного вызова (<span class="bx-font" style="font-size:12pt; line-height: normal;">args</span>) . Все результаты вызова являются результатом операции. (Это единственный метаметод, который допускает множественные результаты.)<br /></ul></td></tr></tbody></table>Примерно так. <br />
			<i>10.07.2022 07:54:20, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64182/topic7471/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64182/topic7471/</guid>
			<pubDate>Sun, 10 Jul 2022 07:54:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>bshl / bshr metamethods</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64170/topic7471/">bshl / bshr metamethods</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ага, спасибо.<br /><br />забавно, что на одних заборах называют этот метод правильно, __shl, а на других неправильно __bshl. И вторых заборов много.. <br />
			<i>09.07.2022 17:22:23, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64170/topic7471/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64170/topic7471/</guid>
			<pubDate>Sat, 09 Jul 2022 17:22:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>bshl / bshr metamethods</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64169/topic7471/">bshl / bshr metamethods</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QnlySgAh" href="/user/47/" bx-tooltip-user-id="47"><noindex><a href="mailto:s_mike@rambler.ru" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex></a> написал:<br />&gt; t=setmetatable({},{ __div = function(x,y) print(x,y) end})&gt; print (t/2)table: 0000000000620d10 2nilЭто работаетА это не работает. что в 5.3 что в 5.4&gt; t=setmetatable({},{ __bshl = function(x,y) print(x,y) end})&gt; print (t&lt;&lt;2)<br />=============<br /><B>&quot;Он кричал: «Ошибка тут, —&quot;</B><br /> t=setmetatable({},{ __shl = function(x,y) print(x,y) end})<br /> print (t&lt;&lt;2)<br />----------------<br /><B>table: 0000000000db9ef0	2</B><br /><B>nil</B> <br />
			<i>09.07.2022 16:54:12, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64169/topic7471/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64169/topic7471/</guid>
			<pubDate>Sat, 09 Jul 2022 16:54:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>bshl / bshr metamethods</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64167/topic7471/">bshl / bshr metamethods</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			&gt; t=setmetatable({},{ __div = function(x,y) print(x,y) end})<br />&gt; print (t/2)<br />table: 0000000000620d10 2<br />nil<br /><br />Это работает<br />А это не работает. что в 5.3 что в 5.4<br /><br />&gt; t=setmetatable({},{ __bshl = function(x,y) print(x,y) end})<br />&gt; print (t&lt;&lt;2)<br />stdin:1: attempt to perform bitwise operation on a table value (global &#39;t&#39;)<br />stack traceback:<br /> &nbsp; &nbsp; &nbsp; &nbsp;stdin:1: in main chunk<br /> &nbsp; &nbsp; &nbsp; &nbsp;&#91;C&#93;: in ?<br />&gt; print (t&gt;&gt;2)<br />stdin:1: attempt to perform bitwise operation on a table value (global &#39;t&#39;)<br />stack traceback:<br /> &nbsp; &nbsp; &nbsp; &nbsp;stdin:1: in main chunk<br /> &nbsp; &nbsp; &nbsp; &nbsp;&#91;C&#93;: in ?<br /><br />метод __bshl не видится почему то <br />
			<i>09.07.2022 10:02:00, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64167/topic7471/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64167/topic7471/</guid>
			<pubDate>Sat, 09 Jul 2022 10:02:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
