자바 1.8부터 사용할 수 있는 함수형 인터페이스(Functional Interface : 람다식 또는 메서드 참조에 대한 할당 대상으로 사용이 가능한 인터페이스)이며, 두개의 인수를 받아 결과를 생성하는 함수를 표현합니다.
이 함수형 인터페이스는 apply(Object, Object) 메소드를 통해 주어진 인수를 적용하고, 결과값을 리턴할 수 있습니다.
코틀린에서 사용법은 아래와 같습니다. 함수 실행 링크
import java.util.function.BiFunction
fun main() {
val bf = BiFunction { s1: Int, s2: Int ->
val s3 = s1 + s2
"${s1}, ${s2}의 합은 $s3"
}
val result = bf.apply(1,3)
println(result) // 결과 : 1, 3의 합은 4
}
bf는 s1과 s2, 두 개의 인자를 받고 마지막 줄에 있는 "${s1}, ${s2}의 합은 $s3"을 리턴합니다.
이 인터페이스는 rxjava에서도 같은 이름인데 사용 방법이 비슷해서 알아두면 도움이 됩니다.
저는 rxjava Single.zip에서 두 개의 인자를 받아서 하나의 결과를 리턴하기 위하여 사용했습니다.
이 포스팅은 아래 링크를 참고하였습니다.
https://docs.oracle.com/javase/8/docs/api/java/util/function/BiFunction.html
https://codechacha.com/ko/java8-bifunction-example/