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

Scala Methods and Functions

Scala ha metodi e funzioni, la differenza semantica tra i due è piccola. Il metodo in Scala è una parte della classe, mentre la funzione è un oggetto che può essere assegnato a una variabile. In altre parole, la funzione definita nella classe è un metodo.

In Scala, il metodo è simile a Java, il metodo è una parte costitutiva della classe.

In Scala, la funzione è un oggetto completo, in Scala, la funzione è un oggetto che eredita il Trait.

Scala utilizza val le espressioni possono definire funzioni,def definizione delle espressioni del metodo.

class Test{
  def m(x: Int) = x + 3
  val f = (x: Int) => x + 3
}

Attenzione:In alcuni casi, la traduzione tra funzione e metodo non fa differenza.

dichiarazione del metodo

La definizione del metodo Scala è come segue:

def functionName([lista parametri]): [tipo di ritorno]

Se non si scrive il segno uguale e il corpo del metodo, il metodo viene implicitamente dichiarato comeastratto (abstract)che contiene anche il suo tipo, è anche un tipo astratto.

definizione del metodo

La definizione del metodo è costituita da un def inizializza con i termini chiave, seguiti da una lista opzionale di parametri, un duepunto : e il tipo di ritorno del metodo, un segno uguale =, infine il corpo del metodo.

La definizione del metodo Scala è come segue:

def functionName([lista parametri]): [tipo di ritorno] = {
   corpo della funzione
   return [expr]
}

Nella seguente codice: tipo di ritorno può essere qualsiasi tipo di dati Scala legittimo. I parametri nella lista possono essere separati da virgola.

Le seguenti funzioni sommano due parametri passati e calcolano la somma:

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

Se il metodo non restituisce un valore, può restituire Unitsimile a Java void, esempio:

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

Method Call

Scala provides various ways to call methods:

The following is the standard format for calling methods:

functionName( parameters list )

If the method uses the example object to call, we can use the format similar to java (using . :

[instance.]functionName( parameters list )

The above example demonstrates the example of defining and calling methods:

object Test {
   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
   }
}

Execute the above code, the output result is:

$ scalac Test.scala 
$ scala Test
Returned Value: 12

Scala is also a functional programming language, so functions are the core of the Scala language. Some concepts of functions are helpful for us to better understand Scala programming:

Function Concept Explanation with Examples
Function Call-by-NameSpecifying Function Parameter Names
Functions - Variable ArgumentsRecursive Functions
Default Parameter ValuesHigher-Order Functions
Nested FunctionsAnonymous Functions
Partial Application of FunctionsFunction Currying (Function Currying)