코틀린 (2) 썸네일형 리스트형 코틀린 코루틴 내부 동작 이해하기 코틀린 내부 동작 방식 이해하기 - 코틀린 코루틴 책 4장의 주제를 정리 코루틴이 쓰인 코루틴 코드 fun main() { CoroutineScope(Dispatchers.Default).launch { val token = fetchToken() println(token) }.join() } suspend fetchToken(){ delay(1000) return "1234" } 자바 디컴파일로 변환 했을 때의 코드를 중요한 부분만 적은 수도코드 (코틀린, 자바 짬뽕인 수도코드) fun main(completion:Continuation) { var var10000 = BuildersKt.launch$default(/** ... */, Function2() { int label = 0 fun invok.. 변성 - 공변, 무공변, 반공변 공변,무공변,반공변에 대한 개념들은 "타입 S가 T의 하위타입이면 List도 List의 하위타입인가?"에 대한 질문으로 시작한다. 타입 S가 T의 하위 타입일때 -> Box와 Box가 어떤 관계도 아닌 경우 : 타입 S가 T의 하위 타입일때 -> Box가 Box의 하위타입인 경우 : 타입 S가 T의 상위 타입일때 -> Box가 Box의 상위타입인 경우 일반적으론 무공변이다. List랑 List은 어떤 관계도 없다. 왜그러냐면, 제네릭은 "타입소거"방식으로 동작한다. 타입소거란? 컴파일시에만 타입 검사를 하고 런타임시에는 제네릭의 인스턴스에 대한 타입정보를 갖고 있지 않는 것 예를 들어) List은 런타임시에는 그냥 List로 간주된다. (개발자눈에만 타입이 보인다는뜻) 그래서 is 키워트로 List의 타.. 이전 1 다음