ternär
-
was ist besser in punkte perfomance
ternärer operator ? : oder if else
-
Hat dein Profiler dir etwa gesagt dass ein if/else bei dir Performanceprobleme verursacht? Nicht? Dann machs einfach so wies am Besten lesbar ist. Sonst wirst du beim Überarbeiten viel mehr Zeit ins lesen und Nachvollziehen stecken als du je durch etwaige Performancevorteile wieder rausholen kannst. Versuch nichts zu optimieren was du niecht optimieren musst, und ob du musst kann dir nur ein Profiler wirklich sagen.
Zur Frage: vermutlich ist der ternäre Operator tendenziell performanter, nämlich genau dann wenn der Wert des ersten Arguments (und damit das Ergebnis) schon zur Compilezeit feststeht. Allerdings dürfte bei einigermaßen sinnvollen Compilern eine if-Verzweigung mit compilezeit-konstantem Argument genauso wegoptimiert werden.
Bei Argumenten die zur Compilezeit nicht feststehen dürfte ein if/else und ein ternärer Operator zu so ziemlich demselben Objektcode führen.