Extensiones en Kotlin

Quiero usar extensiones para variables y método para mi class personalizada. Estoy intentando debajo del código, pero obtengo un error

Las properties de extensión local no están permitidas

val Double.km: Double get() = this * 1000 val Double.m: Double get() = this val Double.cm: Double get() = this / 100 val Double.mm: Double get() = this / 1000 val Double.ft: Double get() = this / 3.28084 val oneInch = 25.4.mm println("One inch is $oneInch meters") // prints "One inch is 0.0254 meters" val threeFeet = 3.0.ft println("Three feet is $threeFeet meters") // prints "Three feet is 0.914399970739201 meters" 

¿Cómo usar extensiones? ¿Podemos usar extensiones en la interfaz?

Tienes que mover estas declaraciones desde el cuerpo de la function al cuerpo de la class. Al igual que los estados de error, no está permitido definir properties de extensión localmente, mientras que los methods de extensión local son correctos.

Entonces en tu caso podrías hacer:

 class MainClass { val Double.km: Double get() = this * 1000 val Double.m: Double get() = this val Double.cm: Double get() = this / 100 val Double.mm: Double get() = this / 1000 val Double.ft: Double get() = this / 3.28084 fun run() { val oneInch = 25.4.mm println("One inch is $oneInch meters") } } 

Puede usar las properties de extensión desde su MainClass , mientras que el uso externo no es posible.

  • Clase Kotlin no encontrada
  • Android Studio 3 no puede build fragments de kotlin
  • ¿Cómo crear un button en Kotlin que abre una nueva actividad (Android Studio)?
  • ¿Cuál es el equivalente de este código de java a kotlin
  • Android Kotlin Extension super calling
  • En Kotlin Lenguaje de progtwigción importancia de varargs en términos de usos
  • La function Kotlin requiere nada, pero se define como un tipo diferente
  • No se puede acceder a EditText u otros componentes de la interfaz de usuario con Kotlin
  • Prueba unitaria de la function de extensión de Kotlin en las classs de Android SDK
  • Hacer clic en una vista de text para cambiar el fragment