Странное внутреннее поведение инфиксного метода - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть этот код в методе onCreate() в MainActivity:

val map = mapOf(1 to "one", 2 to "two", 3 to "three")
Log.e(TAG, "$map")

и в том же MainActivity У меня есть такой метод инфикса:

infix fun Any.to(other: Any) : Pair<Any, Any> {
        Log.e(TAG, "internal to $other")
        return Pair(this, other)
 }

Вв этом случае все работает нормально, очень логично:

внутреннее для одного

внутреннее для двух

внутреннее для трех

{1 = один,2 = два, 3 = три}

, но если я изменю только строку с ведением журнала, с

Log.e(TAG, "internal to $other")

до

Log.e(TAG, "internal to")

* Выход Logcat следующий:

внутренний к

внутренний к

{1 = один, 2 = два, 3 = три}

Кажется нелогичным, не так ли?Кажется, что этот to метод вызывается только 2 раза ... Почему это происходит?

PS Я пытался включить режим отладки и установить точку останова на строку

Log.e(TAG, "internal to")

и в этом случае метод to был вызван три раза, и Logcat вывод был таким же, как в первом случае (с $other) ...

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