엄범

(Kotlin) 람다(lambda), 변수 포획과 클로저, 멤버 참조

lambda { x: Int, y: Int -> x + y } 코틀린 람다는 자바 람다와 달리 항상 중괄호 사이에 위치한다. 반면 메서드 참조는 중괄호 없이 써야 한다. 코틀린 람다 호출은 실행 시점에 아무런 부가 비용이 들지 않으며 기본 구성 요소와 비슷한 성능을 내기 때문에 적절하게 사용하는 것이 권장된다. 코틀린은 파이썬...

(Kotlin) 싱글턴 object(static) - 객체 선언, 동반 객체, 객체 식 / 익명, 무명

클래스를 정의하면서 동시에 인스턴스를 생성한다. 코틀린에는 static이 없고, 대신 이를 최상위 함수로 처리한다. 그러나 최상위 함수는 말 그대로 최상위에 존재하는 함수이기 때문에 어떤 클래스의 private에는 당연히 접근할 수 없어 클래스 내부에 선언된 static이 클래스의 다른 멤버와 상호 작용하는 경우를 커버할 수 없다. 이렇게, stat...

(Kotlin/Java) Inner Class / Nested Class

Kotlin 중첩 클래스 / 내부 클래스 아무 변경자를 붙이지 않고 클래스의 내부에 다시 정의된 클래스는 자바의 static 중첩 클래스와 동일하다. 내부 클래스로 변경해 바깥쪽 클래스에 대한 참조를 포함하도록 하려면 inner 변경자를 붙여준다. 내부 클래스에서 바깥쪽 클래스의 인스턴스에 접근하기 위해서는 this@를 붙여주어야 한다. class ...