Как настроить границы нескольких типов в Scala?

Я хочу иметь возможность объявить что-то вроде этого:

trait Narrowable[A] extends Iterable[A] {

    def narrow[B <: A & B <: AnyRef] : Iterable[B]

}

То есть тип B должен быть подтипом A и AnyRef. Это возможно?

66 голосов | спросил oxbow_lakes 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 29 Sep 2009 12:34:10 +0400 2009, 12:34:10

1 ответ


0

Использовать тип соединения:

trait Narrowable[A] extends Iterable[A] {
  def narrow[B <: A with AnyRef] : Iterable[B]
}
ответил Walter Chang 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 29 Sep 2009 13:56:09 +0400 2009, 13:56:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132