본문 바로가기

kotlin6

8. 고차 함수: 파라미터와 반환 값으로 람다 사용 8.1 고차 함수란? 다른 함수를 인자로 받거나 함수를 반환하는 함수 해당 언어에서 함수가 일급 객체여야한다. 일급객체 변수에 할당할 수 있다. 다른 함수를 인자로 전달 받는다. 다른 함수의 결과로서 리턴될 수 있다. 예를 들어서 filter 함수도 고차함수다 public inline fun Iterable.filter(**predicate: (T) -> Boolean**): List { return filterTo(ArrayList(), predicate) } 8.1.1 함수 타입 람다를 인자를 받는 함수를 정의하려면, 먼저 람다 인자의 타입을 어떻게 선언할 수 있는지 알아야한다. 변수 타입을 함수 타입으로 지정하면 함수 타입에 있는 파라미터로부터 람다의 파라미터 타입을 유추할 수 있다. 그러므로 람다.. 2022. 2. 13.
7. 연산자 overloading과 관례 관례(convention): 어떤 언어 기능과 미리 정해진 이름의 함수를 연결해주는 기법 기존 자바 클래스가 구현하는 인터페이스는 이미 고정되어있기 때문에 코틀린쪽에서 확장 함수를 사용해서 기존 클래스에 새로운 메소드를 추가할 수 있게 만들었다 7.1 산술 연산자 오버로딩 연산자를 오버로딩하는 함수 앞에는 operator를 붙여줘야한다 7.1.1 이항 산술 연산 오버로딩 operator O data class Point(val x: Int, val y: Int) { operator fun plus(other: Point): Point { return Point(x + other.x, y + other.y) } } fun main() { val p1 = Point(10, 20) val p2 = Point(.. 2022. 1. 23.