Что такое выражения и операторы в Lua?

что такое выражения и операторы в Lua? часто это не так ясно из-за таких вещей, как выражение vararg '...' и то, что nil/true/false также являются выражениями.

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


person Deltrayith    schedule 10.11.2020    source источник
comment
где встречаются сложные выражения?   -  person Deltrayith    schedule 10.11.2020
comment
это часто не так ясно из-за таких вещей, как выражение vararg '...' и то, что nil/true/false также являются выражениями. Что в этом непонятного? Кроме того, различие между выражением и оператором в основном такое же, как и в большинстве императивных языков. Python, JavaScript, C, C++, Java, C#, Go, Swift, Rust — все основные идеи одинаковы.   -  person Nicol Bolas    schedule 10.11.2020


Ответы (1)


Полный синтаксис Lua имеет формальную спецификацию. stat — это операторы, а exp — это выражения. В любом случае, вот краткое изложение конкретных битов, о которых вы спрашивали:

что такое выражения и операторы в Lua?

По сути, выражения — это все, что оценивается как значение, а операторы — это вещи, которые выполняются и могут быть разделены точкой с запятой, и обычно каждая из них находится на отдельной строке.

часто это не так ясно из-за таких вещей, как выражение vararg '...' и то, что nil/true/false также являются выражениями.

Вы правы в том, что эти вещи являются выражениями. Впрочем, это не делает ничего неясным.

и являются ли выражения доступа к таблице?

Да. Они покрываются var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name, который является частью exp через prefixexp.

person Joseph Sible-Reinstate Monica    schedule 10.11.2020