Руководство по Scala. Функции.

В данной статье мы рассмотрим функции в языке программирования 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) в данной языке программирования.