在JavaScript中,我們可以這樣做:在斯卡拉
value = f1() || f2() || f3();
這將調用F1,並將其分配給值,如果結果不爲空。 只有當結果爲空時,它纔會調用f2,如果它不爲null,則將其賦值爲值。 ...
的一種方式在Scala中實現,這是這裏給出:How to make this first-not-null-result function more elegant/concise? 創建調用每個函數,直到沒有空一getFirstNNWithOption功能:
value = getFirstNNWithOption(List(f1 _, f2 _, f3 _))
然而,這並不像你一樣的JavaScript ||運營商,這更加靈活。例如:
value = f1() || f2(3) || f3(44, 'ddd') || value4;
有沒有辦法在scala中實現這一點?
請閱讀本,其中鏈接是很好的解釋。 http://daily-scala.blogspot.com/2010/02/chaining-options-with-orelse.html – 2012-01-04 11:22:27
@dave好點,thx,更新! – 2012-01-04 17:31:40
這可能是值得的內聯塊,否則所有這些通過名稱參數調用... – 2017-06-13 05:20:50