2017-09-06 3 views
0

Ich möchte fragen, wie ist die allgemeine Meinung über die Verwendung von 2 Ternary-Operatoren anstelle von einem If/Else-Block für 2 Variablen.Ternäre Operationen für 2 Variablen

ein Beispiel geben, um es deutlicher zu machen,

Die if/else-Block:

var foo; 
var bar; 
if (boolean_expression) { 
    foo = value1; 
    bar = value2; 
} else { 
    foo = value3; 
    bar = value4; 
} 

Mit 2 Ternary Operationen:

var foo = (boolean_expression) ? value1 : value3; 
var bar= (boolean_expression) ? value2 : value4; 

Offensichtlich ist die if/else-Block effizienter , da es nur den Booleschen_Ausdruck einmal auswertet, während die 2 Ternäroperationen es zweimal auswerten.

Allerdings ist meiner Meinung nach die Verwendung von Ternäroperationen so viel sauberer und lesbarer, dass ich mich kürzlich dazu entschlossen habe, den minimalen Effizienzunterschied zwischen den beiden zu opfern, um die Lesbarkeit meines Codes zu verbessern. (Vorausgesetzt, der Code ist nicht kritisch oder zu häufig ausgeführt)

Auch würde ich schwach für 3 Variablen gleich argumentieren.

Mache ich eine schreckliche Sache zu meinem Code, oder gibt es eine bessere Weise, die ich nicht bewusst bin?

Ich bin in C# Codierung, aber ich denke, diese Frage ist wichtig für jede Sprache, die die ternäre Operation hat.

+0

Sie fragt hier aber IMO, was Sie haben in der ersten Option ist viel lesbarer und bringt die Absicht des Codes viel besser –

Antwort

0

Ich denke, diese Frage Fragen für jede Sprache, die den ternären Betrieb

Einige Sprachen bieten dies hat: für einige Meinung basierten Antworten

(foo, bar) = (boolean_expression) ? (value1, value2) : (value3, value4); 
+0

Welche Sprache ist das? Etwas Interessesyntax –