Home » Scala language

Scala Extractors

In Scala, extractors are objects have special methods. In this tutorial, we will learn about extractors in Scala in detail with working and examples.
Submitted by Shivang Yadav, on March 08, 2020

Scala | Extractors

An extractor is a special type of object that has some special methods. These methods are: apply() and unapply().

  • The apply() method of extractor object is used to feeding values for the object, it takes parameter values, formats them and adds them to the object.
  • The unapply() method of extractor object is used to delete values from the object, it matches the value and removes them from the object list.

Working of extractors

Let's take an example of an object that apply() as well as unapply() method. The apply() method takes arguments and adds them to class. The unapply() does the exact opposite, it takes arguments, matches them and then deletes, i.e. deconstructs.

Program:

object Student 
{ 
	def main(args: Array[String]) 
	{ 
		def apply(name: String, result: String) =
		{ 
			name +" is "+ result 
		} 

		def unapply(x: String): Option[(String, String)] =
		{ 
			val y = x.split("is") 
			if (y.length == 2 && y(1)=="Pass") 
			{ 
				Some(y(0), y(1)) 
			
			} 
			else
					None
		} 
		println ("The Apply method returns : " + 
						apply("Ram", "Pass")) 
		println ("The Unapply method returns : " + 
						unapply("RamisPass")) 
	} 
} 

Output

The Apply method returns : Ram is Pass
The Unapply method returns : Some((Ram,Pass))

Explanation:

The unapply() method here, checking if the student is passed and removes it based on the result.






Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.