2016-08-04 79 views
-1

Ich habe eine der folgenden Java-Code-Schnipsel (wo a und b sind Futures):Scala Weise, wenn auch mit zwei Bedingungsvariablen

if (a.isEmpty && b.isEmpty) func(list) 
else if (a.isEmpty) func(list, b) 
else if (b.isEmpty) func(a, list) 
else func(a, list, b) 

Ich habe alle Implementierungen der Funktion ‚func‘. Gibt es einen richtigen Weg, dies in Scala zu schreiben oder ist das gut genug?

+0

ich eine vorhandene Klasse bin erstreckt, die bereits die Implementierungen haben. – NPK

+0

Was sind 'a',' b', 'list' und' func'? – Eric

+0

Unter der Annahme, dass a und b nicht gleich dem Typ der Liste sind, ist es typsicher und entspricht dem Überladen. – sascha10000

Antwort

1

Unter der Annahme, a und b sind Listen, die wahrscheinlich scheint, als sie zu list Zusammenhang scheinen:

(a, b) match { 
    case (Nil, Nil) => func(list) 
    case (Nil, _) => func(list, b) 
    case (_, Nil) => func(a, list) 
    case _   => func(a, b, list) 
} 
+0

eigentlich sind sie Futures – NPK

+0

Ok. Eine nützliche Sache für Sie, dass Sie früher alles gesagt haben! –

+0

Nun .... Futures ... das war unerwartet. –