Processing语言算术运算符重载实现方法及项目规划问询
Processing运算符重载相关问题解答
传闻真实性说明
- 该传闻不属实,基于Java开发的Processing官方版本从未公开将运算符重载纳入正式开发规划,该特性也未在任何官方发布版本中上线。
核心原因有两点:一是Processing的核心设计目标是降低创意编程入门门槛,语法保持和Java高度兼容,避免给入门用户引入Java原生不支持的语法特性,导致后续学习通用Java开发时出现认知偏差;二是Java语言本身不支持运算符重载,若要在Java版Processing中实现该特性需要对核心编译器做大量定制化改造,投入产出比极低,因此官方没有相关开发计划。
等效功能实现方式
Java版Processing中可以通过类方法实现和运算符重载完全等效的运算逻辑:
- 内置类已经封装了对应运算方法,以常用的
PVector向量类为例:- 加法调用
add()方法,替代+运算符 - 减法调用
sub()方法,替代-运算符 - 乘法调用
mult()方法,替代*运算符 - 除法调用
div()方法,替代/运算符
示例代码:
PVector v1 = new PVector(10, 20); PVector v2 = new PVector(5, 3); // 等效于 v1 = v1 + v2 v1.add(v2); // 等效于 v1 = v1 * 2 v1.mult(2); - 加法调用
- 自定义类可以自行定义对应运算方法,调用逻辑和内置类保持一致即可。
- 仅Processing Python模式支持原生运算符重载,该模式底层基于Python实现,你可以通过重写
__add__、__sub__等魔术方法实现自定义类的运算符运算逻辑,和标准Python的运算符重载实现方式完全一致。
内容的提问来源于stack exchange,提问作者King-Ink
相关产品推荐
相关产品推荐

