Итак, я просматривал некоторые из новых функций Java 7, включая try-with-resources bit.
Я понимаю, как это работает и все, я только что заметил, чтосинтаксис, используемый для указания ресурсов, немного странный.
try
(InputStream fis = new FileInputStream(source);
OutputStream fos = new FileOutputStream(target))
{
// stuff
}
}
catch (Exception e) {
// stuff
}
Конкретно определение ресурсов:
try (InputStream fis = new FileInputStream(source);
OutputStream fos = new FileOutputStream(target))
Есть ли в Java другое место, где разделяются операторы в блоке скобокдопустимо?
Единственное другое время, которое я могу вспомнить, это цикл for
for ( ; ; )
, но это не совсем то же самое, так как должно быть ровно 2 ;
с, а операторыразделены ,
, как в
for (int i = 1, j = 100; i <= 100, j > 0; i = i-1, j = j-1)
Итак, мой вопрос: откуда появился этот синтаксис?Есть ли причина, по которой операторы разделяются ;
вместо ,
?Есть ли еще один сопоставимый язык, который имеет аналогичное использование ;
разделенных операторов внутри блока ()
?Я не могу вспомнить пример в Java, C или Python.