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 ).

  • setSmallIcon (icon: Icon) y NotificationCompat
  • ¿Cómo implementar un constructor de validation en Kotlin?
  • ¿Las extensiones de Kotlin para Android almacenan en caching las properties sintéticas o cada vez que llama a findViewById ()?
  • Android: el calendar especial de Java / Kotlin aparece
  • Kotlin + SpringBoot 2.0.0-M4 falló en el context de la aplicación de carga (BeanCreationException)
  • Kotlin: ¿Cómo verificar si enum contiene una cadena dada sin interferir con las excepciones?
  • Combina Java con Kotlin en Android
  • Invertir un infijo boolean resultado kotlin
  • Modificar el comportamiento de List.get en Kotlin
  • Cómo leer y escribir files txt en android en kotlin
  • Cómo pasar la class kotlin o la instancia de la class kotlin como arguments