English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Методы и функции в Scala

def

  
  
}

Определение метода начинается с def Ключевые слова начинаются, за ними может следовать необязательный список параметров, за которым следует двоеточие : и тип возвращаемого значения, за которым следует знак равенства =, в конце - тело метода.

Формат определения функции Scala выглядит следующим образом:

def functionName([параметры]) : [тип возвращаемого значения] = {
   тело функции
   возврат [expr]
}

В приведенном выше коде тип возвращаемого значения Это может быть любая合法ая тип данных Scala. Параметры в списке могут быть разделены запятыми.

Функции, приведенные ниже, выполняют суммирование двух传入ых параметров:

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

Если метод не возвращает значение, он может возвращать Unitаналогичен Java: voidПример приведен ниже:

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

Вызов метода

Scala предоставляет различные методы вызова:

Ниже приведен стандартный формат вызова методов:

functionName( список параметров )

Если метод использует пример объекта для вызова, мы можем использовать формат, аналогичный Java (используя . ):

[instance.]functionName( список параметров )

Приведенные выше примеры демонстрируют примеры определения и вызова методов:

object Test {
   def main(args: Array[String]) {
        println( "Возвратное значение: " + addInt(5,7) );
   }
   def addInt( a: Int, b: Int ) : Int = {
      var sum: Int = 0
      sum = a + b
      return sum
   }
}

Выполните приведенный выше код, и результат вывода будет:

$ scalac Test.scala 
$ scala Test
Возвратное значение: 12

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

Объяснение концепции функции с примерами
Параметры функции по имени (Call-by-Name)Определение имен параметров функции
Функция - переменное количество параметровРекурсивные функции
Значения по умолчанию для параметровВысококачественные функции
Внутренние функцииАнонимные функции
Половинное применение функцииКурирование функций (Function Currying)