Возьмем следующий фрагмент кода Java:(Compiler) еще если (правда) против еще сценария
....
else if (true){ //hard-coded as true
///launch methodA
}
else {
///launch methodA (same code as in the ` else if ` statement)
}
....
Что мне было интересно то, как компилятор работает с этим. Не было бы логичным, если бы компилятор полностью удалил оператор else if(true)
, чтобы не выполнять проверку, даже если он жестко закодирован как истинный. В частности, в Eclipse, как интерпретируется код выше?
Или что насчет следующего сценария:
....
else if (true){ //hard-coded as true
///launch methodA
}
else {
///launch methodBB
}
....
это не было бы логичным в этом случае для компилятора, чтобы удалить else
заявление? Потому что во время работы оператор else
недоступен.
Просто интересно ... самым логичным (или, по крайней мере, самым эффективным) было бы компилятором оставить только «метод запуска» в обоих случаях. – brlaranjeira
«Разве это не логично ...» Да, и это то, что на самом деле делают большинство современных компиляторов. –