Kotlin(9)
-
[Kotlin] static, object, companion object 차이
목차 우리는 보통 kotlin에서 java의 static 변수 또는 메서드를 사용하기 위해 object 키워드 또는 companion object를 사용한다. 아래처럼 말이다. 아래와 같이 object 를 사용하는 것을 object declaration이라고 한다. object ObjectTest { const val CONST_STRING = "1" fun test() {} } class CompanionObjectTest { companion object { const val CONST_TEST = 2 fun test() { } } } kotlin에서는 static 이란 것이 없고 위와 같이 사용하기 때문에 이것이 static 이다 라고 오해할 수 있다. 나 역시 이번 공부를 통해 정확히 알기 전까지..
2021.06.27 -
[Kotlin] Coroutine suspend function 은 대체 뭐야?
목차 suspend 는 무엇인가. 사전을 찾아보면, '중지하다' 라는 뜻의 단어다. 그렇다면, coroutine 에서의 suspend keyword 는 무엇을 의미할까? a function that could be started, paused, and resume. 시작하고, 멈추고, 다시 시작할 수 있는 함수 라고 한다. (흠, 정의는 굉장히 짧은데 잘 와닿지는 않는다) suspend란 비동기 실행을 위한 중단 지점의 의미 즉, 잠시 중단(suspend)한다는 의미이고, 잠시 중단한다면 언젠가는 다시 시작(resume)된다는 뜻. 그래. 정의는 알겠어. 근데 그래서..? 뭐 뭐가 다른데 !!!!! 이 찝찝함을 이번 테스트를 통해 시원하게 해소했다. 나와 같이 이해가 잘 안 된 분들을 에게 조금이나마 도..
2021.06.13 -
[Kotlin] Scope Functions - let, run, with, apply, and also 에 대하여
오늘의 개념: Kotlin Scope Functions 처음엔 정말 헷갈렸다. 그렇지만 차이를 알고 나니 정말 쉽다! 각 함수는 크게 2가지의 특징으로 나뉜다. 이것만 알면 끝!끝! 차이 1. Context object : this 또는 it 여기서 "Context object"란, 아래 코드를 보자. val adam = Person("Adam").apply { // 여기서 Person 객체를 어떻게 받느냐의 의미. apply는 this 로 받음 age = 32 // 따라서, this.age 와 동일함 city = "London" // this.city와 동일 } val adam = Person("Adam").also { // also는 it 으로 받음 it.age = 32 it.city = "Londo..
2020.02.17