Почему в Java нет блочных деклараций переменных?
Следующий метод не работает, потому что внутренний блок объявляет переменную с тем же именем, что и во внешнем блоке. Очевидно, что переменные принадлежат методу или классу, в котором они объявлены, а не блоку, в котором они объявлены, поэтому я могуt написать небольшой небольшой временный блок для отладки, который на мгновение отбрасывает переменную во внешней области видимости в тень:
void methodName() {
int i = 7;
for (int j = 0; j < 10; j++) {
int i = j * 2;
}
}
Почти каждый блокобластный язык I 'Мы когда-либо использовали это, в том числе тривиальные маленькие языки, для которых я писал интерпретаторы и компиляторы в школе. Perl может сделать это, как и Scheme, и даже C. Даже PL / SQL поддерживает это!
Какие'Является ли обоснование этого дизайнерского решения для Java?
Редактировать: как кто-то указал, Java имеет блок-область видимости. Какие'имя для концепции яя спрашиваю о? Хотел бы я вспомнить больше из этих уроков языкового дизайна. :)