これは私がよく遭遇するものですが、エレガントな方法がわかりません。Foo オブジェクトのコレクションがあります。Foo には、null または Bar オブジェクトを返すことができるメソッド bar() があります。コレクションをスキャンし、各オブジェクトの bar() メソッドを呼び出して、実際の参照を返す最初のオブジェクトで停止し、スキャンからその参照を返します。
明らかに:
foos.find(_.bar != null).bar
トリックを行いますが、 #bar を 2 回呼び出します。