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]
}

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

Синтаксис

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

Функция, которая ничего не возвращает, может вернуть Unit что эквивалентно 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.

Функции вызова по имени Функции с именованными аргументами
Функция с переменными аргументами Рекурсионные функции
Значения параметров по умолчанию Функции высшего порядка
Вложенные функции Анонимные функции
Частично применяемые функции Функции каррирования