¿Cómo se especifican los generics de tipado de pato (interfaz implícita) en Kotlin?

Por ejemplo

// Not valid Kotlin code. fun <T : Summable> myFunction ... 

T : Summable significa que cualquier tipo T admite + operador, es decir, tiene un método .plus definido.

No existe tal característica en Kotlin, y no está planeada para una versión futura en este momento.

Es posible que desee echar un vistazo al proyecto DucKtypes en GitHub, que permite la "forma de pato estático". Por ejemplo:

 interface Summable { fun plus() } object x { fun plus(){ println("plus") } } fun myFunction( s : Summable ){ s.plus() } myFunction( x ) 

El proyecto aún es bastante nuevo, pero pronto podría tener un plugin de gradle para automatizar la generación de código.

  • No se puede crear un nuevo usuario
  • Java Lambda para Kotlin
  • DSL-like OnClick-listener para una vista personalizada usando kotlin en Android
  • TornadoFX: Type-Safe CSS con otras bibliotecas
  • Anko + Content Provider, no actualiza los datos sobre el cambio
  • Un equivalente de text para la imageView
  • Este tipo tiene un constructor y debe ser inicializado aquí - Kotlin
  • Autenticación de formulario en Ktor
  • Kotlin reference no resuelta linkedListOf
  • Dokka usa nombres de class completamente calificados
  • ¿Por qué el operador ternario no está "trabajando" en Kotlin?