Учебники

Scala — Функции

Функция — это группа операторов, которые выполняют задачу. Вы можете разделить ваш код на отдельные функции. То, как вы делите свой код между различными функциями, зависит от вас, но логически разделение обычно таково, что каждая функция выполняет определенную задачу.

В Scala есть как функции, так и методы, и мы используем термины «метод» и «функции» взаимозаменяемо с небольшим отличием. Метод Scala — это часть класса, которая имеет имя, сигнатуру, необязательно несколько аннотаций и некоторый байт-код, где в качестве функции в Scala это полный объект, который может быть назначен переменной. Другими словами, функция, которая определяется как член какого-либо объекта, называется методом.

Определение функции может появиться в любом месте исходного файла, и Scala допускает определения вложенных функций, то есть определения функций внутри других определений функций. Наиболее важным моментом, который следует отметить, является то, что имя функции Scala может содержать такие символы, как +, ++, ~, &, -, -, \, /,: и т. Д.

Объявления функций

Объявление функции Scala имеет следующую форму —

def functionName ([list of parameters]) : [return type]

Методы неявно объявляются абстрактными, если вы не используете знак равенства и тело метода.

Определения функций

Определение функции Scala имеет следующую форму —

Синтаксис

def functionName ([list of parameters]) : [return type] = {
   function body
   return [expr]
}

Здесь тип возвращаемого значения может быть любым допустимым типом данных Scala, а список параметров будет списком переменных, разделенных запятой, а список параметров и тип возвращаемого значения являются необязательными. Очень похоже на Java, оператор return может использоваться вместе с выражением, если функция возвращает значение. Ниже приведена функция, которая добавляет два целых числа и возвращает их сумму:

Синтаксис

object add {
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b
      return sum
   }
}

Функция, которая ничего не возвращает, может вернуть модуль , эквивалентный void в Java, и указывает, что функция ничего не возвращает. Функции, которые ничего не возвращают в Scala, они называются процедурами.

Синтаксис

Вот синтаксис —

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

Функции вызова

Scala предоставляет ряд синтаксических вариантов для вызова методов. Ниже приведен стандартный способ вызова метода:

functionName( list of parameters )

Если функция вызывается с использованием экземпляра объекта, то мы будем использовать точечную нотацию, аналогичную Java, следующим образом:

[instance.]functionName( list of parameters )

Попробуйте следующий пример программы, чтобы определить и затем вызвать ту же функцию.

пример

object Demo {
   def main(args: Array[String]) {
      println( "Returned Value : " + addInt(5,7) );
   }
   
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

Сохраните вышеуказанную программу в Demo.scala . Следующие команды используются для компиляции и выполнения этой программы.

команда

\>scalac Demo.scala
\>scala Demo

Выход

Returned Value : 12

Функции Scala являются сердцем программирования Scala, поэтому Scala считается функциональным языком программирования. Ниже приводится несколько важных понятий, связанных с функциями Scala, которые должен понимать программист Scala.