Tôi thường thấy hai mô hình này cho phụ thêm một giá trị tùy chọn để một Seq:sạch Scala cú pháp cho "Nối giá trị tùy chọn để Seq nếu nó tồn tại"
def example1(fooList: Seq[Foo], maybeFoo: Option[Foo]): Seq[Foo]) = {
if (maybeFoo.isDefined)
fooList :+ maybeFoo.get
else
fooList
}
def example2(fooList: Seq[Foo], maybeFoo: Option[Foo]): Seq[Foo]) = {
maybeFoo match {
case Some(foo) => fooList :+ foo
case None => fooList
}
}
Cả hai của những phương pháp làm việc, nhưng họ có vẻ dài dòng và xấu xí. Có một toán tử hoặc phương thức hiện có để thực hiện điều này một cách tự nhiên/chức năng hơn không?
Cảm ơn!
Nếu bạn chỉ muốn dòng dòng phương pháp mà bạn có, bạn có thể viết 'fooOpt.map (fooSeq : + _). getOrElse (fooSeq) '. –