미루고 미루던 coroutine에 대해서 깊이 파볼때가 되었다. 우선 job부터 건드려보자.Job은 하나의 작업 단위를 의미한다.즉 coroutine으로 처리하는 하나의 작업은 job 객체로 반환할 수 있다.Job에 대한 기본적인 설명으로는 Job은 부모-자식 관계의
1.8.2에 experiment로 추가되었던 enum class의 entries() method가 정식으로 추가되었다. enum class의 상수들을 호출할 때 values()보다 entries()를 호출하는 것을 권장한다는데 무슨 차이가 있을까?
개발을 하면서 가장 많이 사용하는 keyword가 아닐까 싶은 data class이다.java와 비교하면 생성자도 getter, setter도 따로 만들 필요가 없어서 개발할 때 편의성이 가장 크게 느껴지는 class인데 정확히 어떤 걸 해주는 지 자세히 알아보자kot
value class value를 class로 감싸서 특정 도메인에 특화하여 유용하게 사용할 수 있는 경우가 있다. 하지만 class는 heap에 객체가 생성(boxing)되기 때문에 overhead가 발생한다. kotlin은 이런 overhead를 해결해주는 inl
Delgation 말 그대로 위임한다는 뜻이다.위의 코드의 결과는 10이다 Derived의 구현을 Base를 구현한 b에게 맡기고 b가 정의한 print()대로 출력된다.그럼 구현을 맡겨놓고 자기가 원하는 fun은 따로 구현을 한다면? 이것도 예상하기 쉽지만 자신이 o
kotlin 2.0.0에서 스마트캐스트가 더 똑똑해졌다고 한다. 한번 살펴보자타입 체크를 지역 변수로 선언하면 if 조건문 밖이라도 해당 변수에 접근하여 자동으로 형변환을 해줄 수 있다.kotlin 2.0.0부터는 컴파일러가 local, inline과 같이 외부에서 참