Trong javascript, chúng ta có thể làm điều gì đó như:tương đương với toán tử javascript || trong scala
value = f1() || f2() || f3();
này sẽ gọi f1, và gán nó vào giá trị nếu kết quả không phải là null. chỉ khi kết quả là null, nó sẽ gọi f2 và gán giá trị đó nếu giá trị đó không phải là rỗng. ...
Một cách để đạt được điều này trong scala được đưa ra ở đây: How to make this first-not-null-result function more elegant/concise? tạo một hàm getFirstNNWithOption mà các cuộc gọi mỗi chức năng cho đến khi không null:
value = getFirstNNWithOption(List(f1 _, f2 _, f3 _))
Tuy nhiên, đây không phải là tốt đẹp như javascript || nhà điều hành, linh hoạt hơn. ví dụ:
value = f1() || f2(3) || f3(44, 'ddd') || value4;
có cách nào để đạt được điều này trong scala không?
Xin vui lòng đọc này, nơi chain được giải thích tốt. http://daily-scala.blogspot.com/2010/02/chaining-options-with-orelse.html –
@dave điểm tốt, thx, được cập nhật! –
Có thể là đáng giá để chunk một nội tuyến về điều này, nếu không tất cả những người gọi bằng các thông số tên ... –