あなたの質問は2つの部分に分かれています.1つはステートメントの動作について、次にこれを行うべきかどうかについてです。何人のプログラマーが 2 番目の問題を解くかをお見せしましょう。
土曜日の朝の午前 4 時 30 分に二日酔いで、このコードにバグがあり、30 分以内に修正する必要があるとします。そうしないと、仕事やビジネスが危険にさらされます。
if (a ? b ? c : d : false)
また
if (a) {
if (b)
return c;
else
return d;
} else {
return false;
}
また
if (!a)
return false;
if (!b)
return d;
return c;
また
if (a)
return b ? c : d;
else
return false;
どちらが正しい選択でしたか?
- 編集 -
1 文字の変数名では、無害に見えます。したがって、いくつかの実際の変数名:
if (application.config.usingUTCTimezone ? system.environment.biosTimezoneIsUTC ? haveNTPServerConfigured : system.time.clockIsSynchronized : false)
また
if (application.config.usingUTCTimezone ?
system.environment.biosTimezoneIsUTC ?
haveNTPServerConfigured : system.time.clockIsSynchronized
: false)
また
if (application.config.usingUTCTimezone) {
if (system.environment.biosTimezoneIsUTC)
return haveNTPServerConfigured;
else
return system.time.clockIsSynchronized;
} else {
return false;
}
また
if (!application.config.usingUTCTimezone)
return false;
if (!system.environment.biosTimezoneIsUTC)
return system.time.clockIsSynchronized;
return haveNTPServerConfigured;
また
if (application.config.usingUTCTimezone)
return system.environment.biosTimezoneIsUTC ? haveNTPServerConfigured : system.time.clockIsSynchronized;
else
return false;