Порядок времен и функции сложения в уравнении Явы / Котлина - PullRequest
0 голосов
/ 04 марта 2019

Я выполняю упражнение Перегрузка операторов Kotlin Koans и собираюсь реализовать арифметику даты следующим образом:

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 голосов
/ 04 марта 2019

Это действительно будет работать так же, как математическое выражение.

Перегрузка оператора состояния страницы (выделено мое):

Kotlin позволяет нам предоставлятьреализации для предопределенного набора операторов в наших типах.Эти операторы имеют фиксированное символическое представление (например, + или *) и фиксированный приоритет .

И на странице грамматики перечислены приоритеты операторов, где * выше +.

Поэтому сначала вызывается функция times, а ее результат передается в качестве аргумента функции plus.

0 голосов
/ 04 марта 2019

Котлин разработан так, чтобы сохранять порядок приоритета для операторов точно так же, как математика, да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...