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 ProductWhere, 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.
Scala // Scala program of a trait // Product3 // Creating an object object GfG { // Main method def main(args: Array[String]) { // Applying Produt3 trait // and assigning values val x: Product3[String, Int, Double] = { ("GeeksforGeeks", 32, 43) } // Displays the first element println(x._1) // Displays the second element println(x._2) // Displays the third element println(x._3) } }
Output:Here, we have utilized abstract value members for accessing the elements.GeeksforGeeks 32 43.0
- 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.
Scala // Scala program of a trait // Product3 for concrete // value members // Creating an object object GfG { // Main method def main(args: Array[String]) { // Applying Product3 trait // and assigning values val x: Product3[String, Char, Int] = { ("GeeksforGeeks", 'a', 43) } // Displays number of elements println(x.productArity) // Displays nth element println(x.productElement(1)) // Displays prefix of the trait println(x.productPrefix) } }
Output:Here, productPrefix will return Tuple3 as Tuple3 is a final case class that extents Product3.3 a Tuple3
-