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.
Функции вызова по имени | Функции с именованными аргументами |
Функция с переменными аргументами | Рекурсионные функции |
Значения параметров по умолчанию | Функции высшего порядка |
Вложенные функции | Анонимные функции |
Частично применяемые функции | Функции каррирования |