Регистрация типа переменной - PullRequest
1 голос
/ 13 июня 2019

Я пытался найти тип переменной context в Android Studio, войдя в консоль. Тем не менее, я получаю два разных результата, когда я

  1. Сначала он был сохранен в переменной typeContext, а затем занесен в журнал
  2. напрямую зарегистрировано context!!::class.simpleName

О / п были

  1. MainActivity
  2. com.example.android.testapp.MainActivity@95580a4!!::class.simpleName

неожиданно отличается для обоих случаев. Может кто-нибудь объяснить, почему это происходит?

override fun onAttach(context: Context?) {
    super.onAttach(context)

    val typeContext = context!!::class.simpleName

    Log.d("my_debug", "type of context is given by: $typeContext or $context!!::class.simpleName")

    {....}
}

1 Ответ

5 голосов
/ 13 июня 2019

Во втором случае, Kotlin не анализирует вашу интерполяцию строк так, как вы ожидаете.Он считает, что $ в $context!!::class.simpleName означает, что вы хотите интерполировать значение $context (за которым следует строковый литерал !!...).

Чтобы исправить это, используйте ${...}, чтобы точно указатькакое выражение вы хотите интерполировать.

Другими словами, измените $context!!::class.simpleName на ${context!!::class.simpleName}.

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