scalabook

Форк
0
61 строка · 2.5 Кб

while and try

while loops

Цикл while

имеет следующий синтаксис:

var x = 1
// x: Int = 1
while
x < 3
do
println(x)
x += 1
// 1
// 2

В Scala не приветствуется использование изменяемых переменных var

, поэтому следует избегать while
. Аналогичный результат можно достигнуть используя вспомогательный метод:

def loop(x: Int): Unit =
if x < 3 then
println(x)
loop(x + 1)
loop(1)

try/catch/finally

Как и в Java, в Scala есть конструкция try

/catch
/finally
, позволяющая перехватывать исключения и управлять ими. Для обеспечения согласованности Scala использует тот же синтаксис, что и выражения match
, и поддерживает pattern matching для различных возможных исключений.

В следующем примере openAndReadAFile

- это метод, который выполняет то, что следует из его названия: он открывает файл и считывает текст в нем, присваивая результат изменяемой переменной text
:

var text = ""
try
text = openAndReadAFile(filename)
catch
case fnf: FileNotFoundException => fnf.printStackTrace()
case ioe: IOException => ioe.printStackTrace()
finally
println("Здесь необходимо закрыть ресурсы.")

Предполагая, что метод openAndReadAFile

использует Java java.io.*
классы для чтения файла и не перехватывает его исключения, попытка открыть и прочитать файл может привести как к FileNotFoundException
, так и к IOException
, и эти два исключения перехватываются в блоке catch
этого примера.


Ссылки:

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.