Tôi đang phát triển một số mã bằng cách sử dụng Scala và tôi đang cố gắng giải quyết một cách thông minh một phép chuyển đổi cơ bản giữa các bộ sưu tập có chứa một số Option[T]
.Thông minh đối phó với Tùy chọn [T] trong Scala
Hãy nói rằng chúng tôi có danh sách sau đây
val list: List[(A, Option[B])] = // Initialization stuff
và chúng tôi muốn áp dụng một chuyển đổi để list
để có được danh sách sau đây
val transformed: List[(B, A)]
cho tất cả Option[B]
s mà đánh giá để Some[B]
. Cách tốt nhất tôi tìm thấy để làm điều này là áp dụng chuỗi chuyển đổi sau đây:
val transformed =
list.filter(_.isDefined)
.map { case (a, Some(b)) => (b, a) }
Tuy nhiên tôi cảm thấy rằng tôi đang thiếu điều gì đó. Cách tốt nhất để xử lý Option[T]
là gì?