Этот код, который я нашел при просмотре кода. Есть ли скрытая проблема в этом коде или это просто отлично?Результат логического оператора OR как rvalue
myBool = myBoolA || (oldState == AS_PLAYING); //code #1
Edit: Одна опечатка (myBoolA
вместо myBool
) со мной создали некоторые неприятные путаницы; Мне очень жаль.
На самом деле код, который будет рассмотрен в:
myBool = myBool || (oldState == AS_PLAYING); //code #1, not myBoolA
и мой Рекомендованное код:
if(oldState == AS_PLAYING) myBool = true; //code #2
Преимущества с кодом # 2 IMO:
- лучше читаемость
- если
myBool
не инициализирован, чтобы начать wi th, не будет неопределенного поведения.
Ваше предложение как есть не имеет такого же значения. Вы полностью отказались от 'myBoolA' – StoryTeller
Две строки, которые вы показываете, не эквивалентны. –
Ну вторая версия не использует 'myBoolA', но, скорее всего, это хороший совет, чтобы не пытаться использовать все на одной строке. – DeiDei