Kotlin тип проверки поведения - PullRequest
0 голосов
/ 01 апреля 2020

1. val num: Number = 256 if (num is Int) {}

2. val num: Number = 256 if (num is String) {}

3. val num: Number = 256 if (num равно Activity) {}

Первый случай может быть хорошо скомпилирован. Но во втором случае нельзя скомпилировать причину «несовместимых типов: String и Number». Поэтому я подумал, что суперкласс слева, а класс справа - потому что класс Int расширяет класс Number. Но третий случай может быть скомпилирован. (Активность Android Android активность)

Как это может быть? На Kotlin .org он говорит просто: «Оператор is проверяет, является ли выражение экземпляром типа. Если неизменяемая локальная переменная или свойство проверяется для определенного типа c, нет необходимости явно приводить его»

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