Как указано в этом вопросе здесь, объем переменной внутри случая принадлежит весь оператор Switch , а не только в случае . Следовательно, это не компилируется (дубликация локальной переменной): < /p>
int key = 2;
switch (key) {
case 1:
String str = "1";
return str;
case 2:
String str = "2";
return str;
}
< /code>
Я заинтересован в основном в двух вещах ... < /p>
Какова философия или принцип дизайна за этим поведением? (Может быть, я даже прошу мотивацию для оператора Switch в целом?)
Как это происходит? Как этот код смотрит на байт -код или даже сборку, уровень?
Как указано в этом вопросе здесь, объем переменной внутри случая принадлежит весь оператор Switch , а не только в случае . Следовательно, это не компилируется (дубликация локальной переменной): < /p>
int key = 2; switch (key) { case 1: String str = "1"; return str; case 2: String str = "2"; return str; } < /code>
Я заинтересован в основном в двух вещах ... < /p>
[list] [*] Какова философия или принцип дизайна за этим поведением? (Может быть, я даже прошу мотивацию для оператора Switch в целом?) [*] Как это происходит? Как этот код смотрит на байт -код или даже сборку, уровень? [/list]
Совет Эрланга (или Джо Армстронга?) НЕ использовать защитное программирование и допускать сбои процессов (вместо того, чтобы загрязнять ваш код ненужными средствами защиты, пытающимися отслеживать обломки) теперь имеет для меня столько смысла, что я...
wrt с java pattern Сопоставление (JEP 441), если я сопоставляю объект, используя оператор Switch, например:
switch (cases) {
case A(
B b,
C c,
D d,
) -> doSomething();
}
Как я могу соответствовать классу C с любого подкласса C без явного...
Я проверил это, и это работает нормально, но это выглядит ... странно ... для меня. Должен ли я беспокоиться о том, что это нестандартная форма, которая будет отброшена в будущей версии PHP, или что она может перестать работать? У меня всегда был...
Я хотел бы использовать оператор Java Switch , который использует Class имена в качестве Case Constants. Это возможно как -то? Или мне нужно дублировать имена классов? String tableName = MyClass1 ;