Jaki jest najlepszy sposób dodania Option
s do List
.Jak dodać opcje do listy
Oto moja pierwsza próba:
def append[A](as: List[A], maybeA1 : Option[A], maybeA2: Option[A]) : List[A] = as ++ maybeA1.toList ++ maybeA2.toList
Con: stwarza 2 tmp List
(wiem .toList() jest opcjonalny, ponieważ istnieje niejawna konwersja z opcją [A], aby iterowalny [A])
Kolejna próba jest
def append2[A](ls: List[A], maybeA : Option[A]) : List[A] = maybeA.map(_ :: ls).getOrElse(ls)
def append[A](as: List[A], maybeA1 : Option[A], maybeA2: Option[A]) : List[A] = append2(append2(as, maybeA1), maybeA2)
Lepiej za f ale mniej czytelny ...
Czy istnieje inny sposób?
Dlaczego chcesz dodać opcję [A] do listy [A]. Na pewno chcesz zobaczyć, czy jest coś wartego dodania? –
Nie dodawaj do końca listy. – ziggystar
Tak, nie znoszę być tym facetem w Stack Overflow, ale jeśli znajdziesz się przy końcu, warto zapytać: czy istnieje powód, dla którego używasz 'List' tutaj (zamiast jakiegoś innego rodzaju sekwencji)? –