Cách tốt nhất để thêm Option
vào số List
là gì.Cách thêm Tùy chọn vào Danh sách
Đây là lần thử đầu tiên của tôi:
def append[A](as: List[A], maybeA1 : Option[A], maybeA2: Option[A]) : List[A] = as ++ maybeA1.toList ++ maybeA2.toList
Côn: nó tạo ra 2 tmp List
(Tôi biết ToList() là không bắt buộc bởi vì có một chuyển đổi ngầm từ Tùy chọn [A] để Iterable [A])
thử khác là
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)
Better mỗi f nhưng ít có thể đọc được…
Có cách nào khác không?
Tại sao bạn muốn thêm tùy chọn [A] vào danh sách [A]. Chắc chắn bạn muốn xem liệu có cái gì đó đáng giá? –
Không thêm vào cuối danh sách. – ziggystar
Vâng, tôi ghét là anh chàng đó trên Stack Overflow, nhưng nếu bạn đang tìm kiếm chính mình để kết thúc, nó có giá trị yêu cầu: Có thực sự là một lý do bạn đang sử dụng 'List' ở đây (chứ không phải là một số loại khác của chuỗi)? –