Существует ли scala тождественное отображение?

Методы C++ являются частными и непереопределяемыми по умолчанию.

  • Вы не можете переопределить закрытый метод
  • , который Вы не можете переопределить не - virtual метод

, Вы, возможно, обращаетесь к перегрузке?

65
задан giampaolo 13 February 2014 в 21:17
поделиться

3 ответа

FWIW, в Scala 2.8 вы просто вызываете расплющить на нем. Томас в основном использовал Scala 2.7. Он упустил только один альтернативный способ использования этой идентичности:

l.flatMap[String](identity)

Однако он не будет работать с обозначением операторов (похоже, что нотация операторов не принимает параметры типа, что полезно знать).

Вы можете также вызов сглаживание в Scala 2.7 (по крайней мере, в List ), но он победил ' не уметь ничего делать без типа. Однако это работает:

l.flatten[String]
22
ответ дан 24 November 2019 в 15:30
поделиться

Вы могли бы просто немного помочь системе вывода типов:

scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))

scala> l.flatten[String]
res0: List[String] = List(Hello, World)
3
ответ дан 24 November 2019 в 15:30
поделиться
Другие вопросы по тегам:

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