我正在完成 Kotlin Koans Operators Overloading练习并打算像这样实现日期算术:
today + YEAR * 2 + WEEK * 3 + DAY * 5
我的问题是,这会像常规数学方程一样运行,首先执行乘法吗?
today + (YEAR * 2) + WEEK * 3 + (DAY * 5)
today.add(YEAR * 2).add(WEEK * 3).add(DAY * 5)
如果是这样,我假设 times()
运算符重载器是我应该在练习中首先执行的操作,然后然后编写 add()
重载器代码。
最佳答案
它的工作原理确实与数学表达式相同。
operator overloading页面状态(强调我的):
Kotlin allows us to provide implementations for a predefined set of operators on our types. These operators have fixed symbolic representation (like + or *) and fixed precedence.
语法页面lists运算符的优先级,其中 *
高于 +
。
因此首先调用 times
函数,并将其结果作为 plus
函数的参数传递。
关于java - java/kotlin 方程中的时间顺序和加法函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980541/