Использование полиморфной функции для извлечения объекта из Options
Бесформенная документация объясняет, как использовать полиморфные функции для создания функции, которая отображает объекты в одном типе контейнера в другой, но что делать, когда вы хотите распаковать вещи из их контейнера?
У меня есть список вариантов
val options = Some(1) :: Some("A") :: Some(3.5) :: HNil
Мне нужна полиморфная функция, которая может извлекать содержимое каждого из параметров.
// This is incorrect:
object uuu extends (Option ~> Any) {
def apply[T](l:Option[T]):T = {
l.get
}
}
Если бы эта функция была правильной, я хотел бы следующее поведение:
options.map(uuu) // I want: 1 :: "A" :: 3.5 :: HNil
Как я могу исправить это так, чтобы моя полиморфная функция действительно работала?