Es `foo como? Foo` un equivalente completo de 'foo como Foo? `En kotlin?

Es foo as? Foo foo as? Foo un equivalente completo de foo as Foo? ?

Si es así, ¿por qué ambos?

Si no, ¿cuál es la diferencia?

as? es el operador de transmisión segura

Normalmente, si intentas enviar una variable y falla, obtienes una ClassCastException . Usando este operador, simplemente devuelve null en este caso.

Esto significa que el tipo de devolución del foo as? Foo foo as? Foo expresión foo as? Foo es en realidad Foo? , porque podría devolver null .


foo as Foo? es un elenco de foo para el Foo? nulo Foo? tipo, esto todavía puede producir una exception si la variable no es de ese tipo (es decir, no es una instancia Foo o null ).

  • ¿Cómo implementa HashMap la interfaz MutableMap en Kotlin?
  • Kotlin: ¿cómo devolver la instancia del service en ejecución en la carpeta?
  • Métodos de Kotlin con Vararg como primer parámetro
  • indexOf en Matrices de Kotlin
  • desactivar: escaneo de annotations de kotlin
  • Crear una class genérica con una matriz de tipo Comparable <T> en kotlin?
  • ¿Kotlin iterator a la list?
  • Retorno nulo de la diversión en kotlin
  • Hace Cualquiera == Objeto
  • Cómo crear instancia de class genérica pasando una reference de método en constructor con kotlin
  • ¿Cómo configurar Jacoco con Spek en un proyecto múltiple?