Scala | Product3
Last Updated :
13 May, 2019
Product3 is a trait in Scala, which is a Cartesian product of three elements. The Linear Supertypes here are Product, Equals, and Any and the known subclass here is Tuple3. It extends the trait Product i.e,
trait Product3[+T1, +T2, +T3] extends Product
Where, T1, T2, and T3 are the used parameter types of the Scala.
-
Abstract Value Members
The abstract value members here are:
-
abstract def _1: T1
It returns the elements of the first parameter type.
-
abstract def _2: T2
It returns the elements of the second parameter type.
-
abstract def _3: T3
It returns the elements of the third parameter type.
-
abstract def canEqual(that: Any): Boolean
It returns true if two instances are equal else returns false.
Example :
object GfG
{
def main(args : Array[String])
{
val x : Product 3 [String, Int, Double] =
{
( "GeeksforGeeks" , 32 , 43 )
}
println(x. _ 1 )
println(x. _ 2 )
println(x. _ 3 )
}
}
|
Output:
GeeksforGeeks
32
43.0
Here, we have utilized abstract value members for accessing the elements.
- Concrete Value Members
The concrete value members here are:
-
def productArity: Int
It returns the number of parameters in Product3 trait.
-
def productElement(n: Int): Any
It returns nth element.
-
def productIterator: Iterator[Any]
It returns an iterator by default.
-
def productPrefix: String
It returns the empty string by default.
Example :
object GfG
{
def main(args : Array[String])
{
val x : Product 3 [String, Char, Int] =
{
( "GeeksforGeeks" , 'a' , 43 )
}
println(x.productArity)
println(x.productElement( 1 ))
println(x.productPrefix)
}
}
|
Here, productPrefix will return Tuple3 as Tuple3 is a final case class that extents Product3.
Share your thoughts in the comments
Please Login to comment...