首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在Toit中重载+运算符吗?

我可以在Toit中重载+运算符吗?
EN

Stack Overflow用户
提问于 2020-08-09 13:28:36
回答 1查看 40关注 0票数 0

我正在用Toit编写代码。我想让+操作符在应用于我的一个类Vector时做一些有意义的事情,该类表示二维向量。

我的代码如下所示:

代码语言:javascript
复制
class Vector:
  x/float ::= ?
  y/float ::= ?
  constructor .x .y:

我能以某种方式支持这段代码吗?

代码语言:javascript
复制
main:
  v1 := Vector 1.0 2.0
  v2 := Vector 3.0 4.0
  log v1 + v2
EN

回答 1

Stack Overflow用户

发布于 2020-08-09 13:28:36

可以将+作为用户定义的运算符添加到Vector类中。解决方案看起来像这样:

代码语言:javascript
复制
class Vector:
  x/float ::= ?
  y/float ::= ?
  constructor .x .y:
  operator + other/Vector -> Vector: 
    return Vector (x + other.x) (y + other.y)

other/Vector部分是用于定义Vector上的+运算符接受Vector类型的单个参数的语法。-> Vector部分是用于声明它返回Vector类型的内容的语法。

有些人更喜欢将其称为“运算符重写”而不是“运算符重载”,因为它不完全允许您对不同的参数类型有多个不同的实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63322805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档