엄범

(Kotlin) stream API / 시퀀스(Sequence)

기본 filter, map 등은 인라인 함수로 정의되어 있어 알아서 인라이닝되므로 성능 신경쓰지말고 그냥 사용하면 된다. 연쇄해서 사용하는 경우 연산의 순서가 성능에 영향을 줄 수 있기 때문에 고려해야 한다. 보통 filter()를 먼저 적용해 추리는게 도움이 되고, 메서드 체이닝 시 앞쪽에서 부터 적용되기 때문에 filter()를 먼저 ...

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

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

(Kotlin/Java) Inner Class / Nested Class

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