В данной статье мы рассмотрим функции в языке программирования Scala.
Функция – это блок кода, который выполняет определённую задачу. Обычно, бизнес проблема разбивается на отдельные задачи, для решения которых, создаются функции.
В Scala поддерживаются как методы (аналог методов в Java), так и функции, которые несколько отличаются от обычных методов. Метод, в Scala, это часть класса, а функция – это отдельный объект, который может быть присвоен какой-то переменной. Т.е. метод – это функция, которая объявлена элементом класса.
Для объявления функция используется следующая общая запись:
def ИМЯ_ФУНКЦИИ ([СПИСОК_ПАРАМЕТРОВ]): [return ТИП_ВОЗВРАЩАЕМОГО_ЗНАЧЕНИЯ] = {
ТЕЛО_ФУНКЦИИ;
return [ВЫРАЖЕНИЕ];
}
Рассмотрим простой пример:
package net.proselyte.scalatutorial.functions
/**
* Simple function that prints alert message.
*
* @author Eugene Suleimanov
*/
object alert {
def printAlertMessage(): Unit = {
println("ALERT!!!");
}
}
Данный пример не возвращает никакого значения.
package net.proselyte.scalatutorial.functions
/**
* Simple function that multiples two integers.
*
* @author Eugene Suleimanov
*/
object multiplication {
def multipleIntegers(first: Int, second: Int): Int = {
val result = first * second;
return result;
}
}
Данная функция принимает 2 целых числа и возвращает их произведение.
Теперь рассмотрим пример использования данных функций в другом классе:
package net.proselyte.scalatutorial.functions
import alert._
import multiplication._
/**
* Simple Scala class that demonstrates using of functions.
*
* @author Eugene Suleimanov
**/
object FunctionsDemo {
def main(args: Array[String]) {
val firstInteger = 100;
val secondInteger = 7;
val multiplicationResult = multipleIntegers(firstInteger, secondInteger);
println(firstInteger + " * " + secondInteger + " = " + multiplicationResult);
printAlertMessage();
}
}
Результатом выполнения данной программы будет следующий вывод в консоль:
100 * 7 = 700
ALERT!!!
Process finished with exit code 0
На этом мы заканчиваем обзор функций в Scala.
В следующей статье мы рассмотрим закрытия (Closures) в данной языке программирования.