Open In App

Anonymous Functions in Scala

Last Updated : 28 Apr, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

In Scala, An anonymous function is also known as a function literal. A function which does not contain a name is known as an anonymous function. An anonymous function provides a lightweight function definition. It is useful when we want to create an inline function.

Syntax:

(z:Int, y:Int)=> z*y
Or
(_:Int)*(_:Int)
  • In the above first syntax, => is known as a transformer. The transformer is used to transform the parameter-list of the left-hand side of the symbol into a new result using the expression present on the right-hand side.
  • In the above second syntax, _ character is known as a wildcard is a shorthand way to represent a parameter who appears only once in the anonymous function.
Anonymous Functions With Parameters

When a function literal is instantiated in an object is known as a function value. Or in other words, when an anonymous function is assigned to a variable then we can invoke that variable like a function call. We can define multiple arguments in the anonymous function.

Example 1:

// Scala program to illustrate the anonymous method 
object Main 
{ 
	def main(args: Array[String]) 
	{ 
		
		// Creating anonymous functions 
		// with multiple parameters Assign 
		// anonymous functions to variables 
		var myfc1 = (str1:String, str2:String) => str1 + str2
		
		// An anonymous function is created 
		// using _ wildcard instead of 
		// variable name because str1 and 
		// str2 variable appear only once 
		var myfc2 = (_:String) + (_:String)

		
		// Here, the variable invoke like a function call 
		println(myfc1("Geeks", "12Geeks")) 
		println(myfc2("Geeks", "forGeeks")) 
	} 
} 

Output:

Geeks12Geeks
GeeksforGeeks
Anonymous Functions Without Parameters

We are allowed to define an anonymous function without parameters. In Scala, We are allowed to pass an anonymous function as a parameter to another function.

Example 2:

// Scala program to illustrate anonymous method 
object Main 
{ 
	def main(args: Array[String]) 
	{ 
		
		// Creating anonymous functions 
		// without parameter 
		var myfun1 = () => {"Welcome to GeeksforGeeks...!!"} 
		println(myfun1()) 
		
		// A function which contain anonymous 
		// function as a parameter 
		def myfunction(fun:(String, String)=> String) =
		{ 
			fun("Dog", "Cat") 
		} 
		
		// Explicit type declaration of anonymous 
		// function in another function 
		val f1 = myfunction((str1: String, 
					str2: String) => str1 + str2) 
		
		// Shorthand declaration using wildcard 
		val f2 = myfunction(_ + _) 
		println(f1) 
		println(f2) 
	} 
} 

Output:

Welcome to GeeksforGeeks...!!
DogCat
DogCat

Next Article
Article Tags :

Similar Reads

three90RightbarBannerImg