2015-02-01 18 views
5

Kotlin, bir kovaryans ayarında üst/alt tip sınırlarını destekliyor mu? Örneğin, ben Kotlin ve Kovaryanslı Üst Tip Sınırlar

class Foo<out T> { 
    fun or<U of T or greater>(other: U): <U> = ... 
} 

Scala hangi

class Foo[+T] { 
    def or[U >: T](other: U): U = ... 
} 

olacağını söylemek istiyorum Fakat derleyici böyle görünmüyor, bu tür parametre T. covarianceness şikayet

cevap

5

Kotlin, bu noktada alt sınırları desteklemiyor. Bazen bir üye yerine bir uzantı işlevi tanımlamaktan kurtulabilirsiniz:

+0

Ve üst sınırlar kovaryans ile desteklenmiyor mu? – monkjack

+0

Üst sınırlar kovaryansa uygun değil, bu nedenle –

+2

izin verilmiyor Scala'nın SDK'sında yaygın olarak verdiğim örnek bağlamında ne kadar yaygın? – monkjack