Приоритет
От самого высокого к самому низкому, вот таблица приоритетов для руби. Операции с высоким приоритетом выполняются перед операциями с низким приоритетом.
!, ~, unary +
**
unary -
*, /, %
+, -
<<, >>
&
|, ^
>, >=, <, <=
<=>, ==, ===, !=, =~, !~
&&
||
.., ...
?, :
modifier-rescue
=, +=, -=, etc.
defined?
not
or, and
modifier-if, modifier-unless, modifier-while, modifier-until
{ } blocks Унарные + и унарные - предназначены для +1, -1 или -(a + b).
Модификатор-если, модификатор-если-нет и т.д. предназначены для модификаторных версий этих ключевых слов. Например, это оператор модификатор-если-нет:
a += 1 unless a.zero?
Обратите внимание, что (a if b rescue c) разбирается как ((a if b) rescue c) по причинам, не связанным с приоритетом. См. операторы модификаторов.
Блоки { ... } имеют приоритет ниже всех перечисленных операций, но блоки do ... end имеют более низкий приоритет.
Все остальные слова в таблице приоритетов выше являются ключевыми словами.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.