2017-09-06 3 views
0

Je voudrais demander quelle est l'opinion générale sur l'utilisation de 2 opérateurs ternaires au lieu d'un bloc if/else pour 2 variables.Opérations ternaires pour 2 variables

Donner un exemple pour le rendre plus clair,

if/bloc autre:

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

En utilisant 2 opérations ternaires:

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

Il est évident que le si/bloc reste est plus efficace , puisqu'elle n'évalue qu'une seule fois l'expression booléenne, alors que les deux opérations ternaires l'évaluent deux fois. Cependant, l'utilisation des opérations ternaires est, à mon avis, tellement plus propre et lisible, que j'ai récemment décidé de sacrifier la différence d'efficacité minimale entre les deux pour améliorer la lisibilité de mon code. (À condition que le code ne soit pas critique ou exécuté trop fréquemment)

En outre, je voudrais argumenter faiblement la même chose pour 3 variables. Est-ce que je fais une chose horrible à mon code, ou y a-t-il une meilleure façon dont je ne suis pas au courant?

Je suis en train de coder en C#, mais je suppose que cette question est importante pour n'importe quelle langue qui a l'opération ternaire.

+0

Vous demandez des réponses fondées sur l'opinion ici, mais l'OMI ce que vous avoir dans la première option est beaucoup plus lisible et apporte beaucoup mieux l'intention du code –

Répondre

0

Je suppose que cette question est importante question pour toute langue qui a l'opération ternaire

Certaines langues offrent ceci:

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

Quelle langue est-ce? Une syntaxe d'intérêt –