scala / 3.1 / scala / function2.html

Trait scala.Function2

trait Function2[@specialized -T1, @specialized -T2, @specialized +R] extends AnyRef

A function of 2 parameters.

In the following example, the definition of max is a shorthand for the anonymous class definition anonfun2:

object Main extends App {
  val max = (x: Int, y: Int) => if (x < y) y else x

  val anonfun2 = new Function2[Int, Int, Int] {
    def apply(x: Int, y: Int): Int = if (x < y) y else x
  }
  assert(max(0, 1) == anonfun2(0, 1))
}
Supertypes
Known subtypes
68 types
Self type

Abstract methods

Source
def apply(v1: T1, v2: T2): R

Apply the body of this function to the arguments.

Returns

the result of function application.

Concrete methods

Source@unspecialized
def curried: T1 => T2 => R

Creates a curried version of this function.

Returns

a function f such that f(x1)(x2) == apply(x1, x2)

Source
override def toString(): String

Definition Classes Any

Source@unspecialized
def tupled: (T1, T2) => R

Creates a tupled version of this function: instead of 2 arguments, it accepts a single scala.Tuple2 argument.

Returns

a function f such that f((x1, x2)) == f(Tuple2(x1, x2)) == apply(x1, x2)

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Function2.html