scala

# Product

#### trait Product extends Equals

Base trait for all products, which in the standard library include at least scala.Product1 through scala.Product22 and therefore also their subclasses scala.Tuple1 through scala.Tuple22. In addition, all case classes implement `Product` with synthetically generated methods.

Version

  1.0

Since

  2.3

Linear Supertypes
Equals, Any
Known Subclasses
::, Call, CompositeThrowable, Cont, Deadline, DocBreak, DocCons, DocGroup, DocNest, DocNil, DocText, Done, End, Failure, Found, Include, Index, InsertionPoint, Left, LeftProjection, List, Nil, NoLo, None, Option, Product1, Product10, Product11, Product12, Product13, Product14, Product15, Product16, Product17, Product18, Product19, Product2, Product20, Product21, Product22, Product3, Product4, Product5, Product6, Product7, Product8, Product9, Remove, Reset, Right, RightProjection, ScalaReflectionException, ScanLeaf, ScanNode, Some, Start, StringContext, Success, Tuple1, Tuple10, Tuple11, Tuple12, Tuple13, Tuple14, Tuple15, Tuple16, Tuple17, Tuple18, Tuple19, Tuple2, Tuple20, Tuple21, Tuple22, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, Tuple8, Tuple9, UninitializedFieldError, Update
Type Hierarchy Learn more about scaladoc diagrams
Ordering

1. Alphabetic
2. By inheritance

Inherited

1. Product
2. Equals
3. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Abstract Value Members

1. #### abstract def canEqual(that: Any): Boolean

   A method that should be called from every well-designed equals method that is open to be overridden in a subclass.

   A method that should be called from every well-designed equals method that is open to be overridden in a subclass. See Programming in Scala, Chapter 28 for discussion and design.

   that

     the value being probed for possible equality

   returns

     true if this instance can possibly equal `that`, otherwise false

   Definition Classes
     Equals

2. #### abstract def getClass(): Class[_]

   Definition Classes
     Any

3. #### abstract def productArity: Int

   The size of this product.

   The size of this product.

   returns

     for a product `A(x1, ..., xk)`, returns `k`

4. #### abstract def productElement(n: Int): Any

   The nth element of this product, 0-based.

   The nth element of this product, 0-based. In other words, for a product `A(x1, ..., xk)`, returns `x(n+1)` where `0 < n < k`.

   n

     the index of the element to return

   returns

     the element `n` elements after the first element

   Exceptions thrown
     `IndexOutOfBoundsException`

### Concrete Value Members

1. #### final def !=(arg0: Any): Boolean

   Definition Classes
     Any

2. #### final def ##(): Int

   Definition Classes
     Any

3. #### def +(other: String): String

   Implicit information
     This member is added by an implicit conversion from Product to any2stringadd[Product] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd

4. #### def ->[B](y: B): (Product, B)

   Implicit information
     This member is added by an implicit conversion from Product to ArrowAssoc[Product] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()

5. #### final def ==(arg0: Any): Boolean

   Definition Classes
     Any

6. #### final def asInstanceOf[T0]: T0

   Definition Classes
     Any

7. #### def ensuring(cond: (Product) ⇒ Boolean, msg: ⇒ Any): Product

   Implicit information
     This member is added by an implicit conversion from Product to Ensuring[Product] performed by method Ensuring in scala.Predef.
   Definition Classes
     Ensuring

8. #### def ensuring(cond: (Product) ⇒ Boolean): Product

   Implicit information
     This member is added by an implicit conversion from Product to Ensuring[Product] performed by method Ensuring in scala.Predef.
   Definition Classes
     Ensuring

9. #### def ensuring(cond: Boolean, msg: ⇒ Any): Product

   Implicit information
     This member is added by an implicit conversion from Product to Ensuring[Product] performed by method Ensuring in scala.Predef.
   Definition Classes
     Ensuring

10. #### def ensuring(cond: Boolean): Product

    Implicit information
      This member is added by an implicit conversion from Product to Ensuring[Product] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

11. #### def equals(arg0: Any): Boolean

    Definition Classes
      Any

12. #### def formatted(fmtstr: String): String

    Returns string formatted according to given `format` string.

    Returns string formatted according to given `format` string. Format strings are as for `String.format` (@see java.lang.String.format).

    Implicit information
      This member is added by an implicit conversion from Product to StringFormat[Product] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()

13. #### def hashCode(): Int

    Definition Classes
      Any

14. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

15. #### def productIterator: Iterator[Any]

    An iterator over all the elements of this product.

    An iterator over all the elements of this product.

    returns

      in the default implementation, an `Iterator[Any]`

16. #### def productPrefix: String

    A string used in the `toString` methods of derived classes.

    A string used in the `toString` methods of derived classes. Implementations may override this method to prepend a string prefix to the result of `toString` methods.

    returns

      in the default implementation, the empty string

17. #### def toString(): String

    Definition Classes
      Any

18. #### def →[B](y: B): (Product, B)

    Implicit information
      This member is added by an implicit conversion from Product to ArrowAssoc[Product] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc

### Inherited from Equals

### Inherited from Any

### Inherited by implicit conversion any2stringadd from Product to any2stringadd[Product]

### Inherited by implicit conversion StringFormat from Product to StringFormat[Product]

### Inherited by implicit conversion Ensuring from Product to Ensuring[Product]

### Inherited by implicit conversion ArrowAssoc from Product to ArrowAssoc[Product]

### Ungrouped