Giả sử tôi có loại này:Cách thực hiện đối sánh mẫu trong Rx. Ở đâu và chọn trong một toán tử?
type T = int option
và quan sát của loại hình đó:
let o : IObservable<T> = // create the observable
Tôi đang tìm kiếm một cách tốt hơn để bày tỏ điều này:
o.Where(function | None -> false | Some t -> true)
.Select(function | Some t -> t)
Có thể quan sát được rằng chỉ tuyên truyền trường hợp
Some
.
Có một số điều tôi không thích.
- Tôi sử dụng 2 nhà khai thác
- Tôi mô hình phù hợp với hai lần
- Các mô hình kết hợp thứ hai là không đầy đủ (làm cho visual studio hiển thị một cảnh báo và cảm thấy lẻ)
- Quá nhiều mã. Mẫu lặp lại mỗi lần tôi cần khớp mẫu.
Bạn sẽ có thể sử dụng 'SelectMany':' o.SelectMany (fun t -> t |> Option.toArray:> int seq) ' – Lee
Âm thanh như [FSharp.Control.Reactive] (http://fsprojects.github.io/FSharp.Control.Reactive) thiếu chức năng' select'. Dự án có thể yêu cầu kéo :) –
Âm thanh tốt :) Bạn có thể muốn đăng liên kết tới PR của mình tại đây, để khách truy cập trong tương lai có thể điều tra trạng thái của nó. –