chcę obiekt do wdrożenia cechę Iterable
i zdać dodatkowy parametr niejawny do wdrożonego sposobu realizacji:metod cech z dodatkowych parametrów ukrytych
object MyRepository extends Iterable[Something] {
def iterator(implict entityManager: EntityManager): Iterator[Something] = ...
}
Oczywiście to nie działa, ponieważ nie ma sposobu iterator
niejawny parametr i dlatego nie jest implementowany przez metodę pokazaną powyżej.
przypadek przykład stosowanie jest metoda map
który chcę zastosować do wartości repozytorium:
def get = Action {
Transaction { implicit EntityManager =>
val result = MyRepository.map(s => s ...)
}
}
Czy istnieje jakiś sposób, aby wdrożyć cechę Iterable
i uchwycić niejawny pramameter?
Próbowałem bardzo ciężko, ale nie mogłem zrozumieć, co mówisz. Chcesz zmienić swoje pytanie? –
@ RégisJean-Gilles: Dodałem przykład i mam nadzieję, że to pokazuje moją intencję. – deamon
Och, oczywiście, widzę. Chcesz zaimplementować 'Iterable.iterator', ale potrzebujesz dodatkowego niejawnego parametru (w implementacji), który oczywiście nie jest zdefiniowany w oryginalnym podpisie. –