엄범

(Kotlin) 타입 시스템 (Any, Unit, Nothing)

코틀린에서는 원시 타입과 참조 타입(래퍼 타입, 포인터 변수)을 별도 타입으로 따로 구분하지 않는다. 예를 들어 java의 int와 Integer 같이 구분하지 않고, Int 하나로 쓴다. 널이 될 수 없는 타입 은 컴파일 시 알아서 원시 타입으로 표현할 수 있는건 원시 타입으로 표현해주고, 메소드를 호출하는 등 래퍼 타입이어야 하는 경우 ...

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

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

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

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