프로그래밍 language
-
[Kotlin] scope function(범위 함수) - let, also, with, run, apply프로그래밍 language 2022. 9. 1. 23:28
scope 함수 코틀린 표준 라이브러리에는 scope 함수로 5가지가 있음 scope 함수는 호출하면 임시 scope가 생기고, 이 scope 안에서는 전달된 객체에 대해 'this' 혹은 'it'을 통해 context 객체에 접근할 수 있다. context 객체의 함수나 프로퍼티에 연속적으로 접근해야 할 때 유용하게 사용할 수 있음 let, also, with, run, apply scope 함수들 사이에 2가지 주요 차이점 context 객체를 참조하는 방법 (this 혹은 it) run, with, apply 는 context 객체를 this로 접근 let, also 는 context 객체를 it으로 접근 return 값 apply, also는 context 객체를 반환 let, run, with..
-
변성(Variance) 개념 정리프로그래밍 language 2022. 8. 31. 21:11
변성 타입 파라미터의 관계에 따라, 제네릭 타입의 관계가 어떻게 되는지를 나타내는 개념 변성에는 대표적으로 공변(covariant), 무공변(invariant), 반공변(contravariant) 등이 있음 정적타입 언어에서는 제네릭을 사용함으로써 변성이란 개념이 있음 (ex. Java, Kotlin, TypeScript etc...) 제네릭을 잘 사용하려면 변성에 대한 이해가 필요 변성을 잘 사용하면 타입 안전성을 해치지 않으면서 범용적인 API를 만들 수 있음 공변(covariant) 타입 파라미터의 상하위 타입 관계와 제네릭 타입의 상하위 타입 관계가 같은 개념 타입 S가 타입 T의 하위 타입이면, Class도 Class의 하위 타입임 무공변(또는 불공변, invariant) 타입 파라미터의 상하..