Java / Kotlin方程中的时间顺序和加法函数

时间:2019-03-04 09:48:18

标签: java kotlin

我正在完成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()重载程序代码。

2 个答案:

答案 0 :(得分:2)

它的确与数学表达式一样工作。

operator overloading页面状态(强调我):

  

Kotlin允许我们为类型上的一组预定义操作符提供实现。这些运算符具有固定的符号表示形式(例如+或*)和固定的优先级

语法页lists优先于运算符,其中*+之上。

因此首先调用times函数,然后将其结果作为plus函数的参数传递。

答案 1 :(得分:0)

Kotlin旨在保持运算符的优先顺序与数学完全相同,是的。