Каков приоритет оператора в OpenSCAD?
В разделе Руководства пользователя OpenSCAD, посвященном операторам, не упоминается приоритет. Быстрый поиск в Интернете ничего не нашел. Я предполагаю, что обычный порядок возведения в степень, затем умножения, затем сложения выполняется, но как, например, условный оператор или унарный минус взаимодействуют с ними? Существует ли официальный документ, описывающий приоритет операторов в OpenSCAD?
@user31389, 👍5
Обсуждение1 ответ
Лучший ответ:
▲ 6
В выражениях OpenSCAD порядок приоритета таков:
Операторы | Описание |
---|---|
() [] | группа, вектор или диапазон |
() [] . | вызов функции, индексация, поиск членов |
^ | возведение в степень |
! + - | унарные операции |
* / % | умножение |
+ - | сложение |
< <= >= > | заказ |
== != | равенство |
&& | логично И |
|| | логично ИЛИ |
?: function() let() assert() echo() | тернарный оператор и унарные псевдооператоры |
Битовых операторов не существует, и ни запятая, ни "=" не являются операторами.
Источник: openscad/src/parser.y
,
@Curt
Смотрите также:
- Существует ли простой способ разделения моделей в OpenSCAD?
- OpenSCAD linear_extrude из многопутевого импорта svg
- .STEP/.F3D to .Файл SCAD?
- Как указать начало вращения в openscad
- Библиотека OpenSCAD для пустого пространства/отверстий
- OpenSCAD "not valid 2-manifold" полезная информация
- Рендер OpenSCAD (F6) завершается ошибкой "ERROR: CGAL error in CGAL_Nef_polyhedron3()"
- Создание "куска пирога" в OpenSCAD?
Я не уверен, что это задокументировано, но я думаю, что в основном они следуют прецеденту C или C++ для приоритета., @R.. GitHub STOP HELPING ICE
Если вы не уверены, используйте круглые скобки для принудительного приоритета., @0scar
@0scar Это то, что я делаю, но было бы неплохо знать., @user31389