Я задавался вопросом о реализации else if if, в частности, зачем нужны два ключевых слова и почему они не объединены. В Python elif используется как оператор потока управления else if. Мне было интересно, как общий компилятор будет интерпретировать еще, если.
Обрабатывает ли компилятор что-то еще, если это как один токен? Или просто if, просто else с неявной областью блоков, которая переходит в if underneath?
Один токен:
if (some_condition) {
some_statement();
}
else_if (some_other_condition) {
other_statement();
}
else {
default_statement();
}
Или иначе, если:
if (some_condition) {
some_statement();
}
else { // compiler generated block scope
if (some_other_condition) {
other_statement();
}
else {
default_statement();
}
}
Мне известно, что разные языки и компиляторы могут реализовывать это по-разному, но если у кого-то есть конкретные сведения о конкретном языке (или компиляторе), мне было бы интересно их услышать.