If-Anweisung im Bereich der Variablen

8

Oft möchte ich Variablen erstellen, die auf eine if-Anweisung beschränkt sind. Einige Berechnungen beziehen sich nur auf eine bestimmte "if" -Anweisung - um den äußeren Bereich mit temporären Variablen zu verseuchen, die schlecht riechen.

Was ich gerne tun würde:

%Vor%

Eine Alternative ist ziemlich chaotisch:

%Vor%

Die offensichtliche Alternative, die ich vermeiden möchte:

%Vor%

Ist so etwas in Scala möglich? Gibt es einen guten Workaround? Wenn nicht, welche anderen Sprachen unterstützen eine solche Idee?

    
vertexshader 13.01.2012, 03:06
quelle

3 Antworten

20

Da if in Scala ein Ausdruck ist, d. h. er gibt einen Wert zurück, würden Sie normalerweise einen Wert auf das Ergebnis Ihres if Ausdrucks setzen. Deine dritte Alternative ist also gut: lege sie in einen Codeblock, d. H.

%Vor%

Keine der innerhalb des Blocks deklarierten val s ist außerhalb davon verfügbar.

    
Luigi Plinge 13.01.2012, 03:16
quelle
5

Sie können eine Musterübereinstimmung verwenden:

%Vor%

result enthält das Ergebnis von x * y oder x * 2 , abhängig davon, welche Berechnung ausgeführt wurde, und x enthält den Wert von data*2+5.4345/2.45 nach Wunsch.

    
earldouglas 13.01.2012 03:27
quelle
0

Sie können einen Bereich dafür erstellen ...

%Vor%

Oder, um es klarer zu machen,

%Vor%     
Daniel C. Sobral 13.01.2012 14:21
quelle

Tags und Links