-
Kotlin 변성
이 포스트에서는 코틀린 제네릭의 주요 개념 중 하나인 변성에 대해 알아보겠습니다. 변성이란 List<String>와 List<Any>와 같이 기저 타입이 같고 타입 인자가 다른 여러 타입이 서로 어떤 관계가 있는지 설명하는 개념입니다. List<Any> 타입의 파라미터를 받는 함수에 List<String>을 넘기면 안전한지에 대한 질문을 생각해봅시다. 결론부터 말하면 안전합니다. 예를 들어 다음과 같은 코드는 정상적으로 컴파일됩니다, fun print(list: List<Any>){ println(list.joinToString()) } print(listOf("a","b","c")) 그러나 MutbleList의 경우는 그렇지 않습니다. fun add(list: MutableList<Any>) { list.add(42) } val strings = mutableListOf("a","b","c") add(strings) println(strings.maxBy{it.length}) 만약 이...
-
Kotlin Basic
이번 포스팅에서는 기존에 자바로 개발하던 안드로이드 프로젝트를 2017년부터 정식으로 구글에서 안드로이드 언어로 채택된 코틀린을 사용하여 개발해보고자 기본 문법을 공부한 내용에 대해서 다루고 있습니다. 목차는 다음과 같습니다. [ 목차 ] Kotlin이란? Kotlin의 장점 Kotlin 기본 문법 Kotlin이란? Kotlin은 2011년에 IntelliJ를 만든 JetBrain이 공개한 프로그래밍 언어입니다. 안드로이드 개발 툴인 Android Studio는 IntelliJ를 기반으로 만들어진 프로그램입니다. 따라서 JetBrain이 만든 Kotlin을 완벽하게 지원합니다. 또한 2017년에 구글에서 안드로이드의 공식 언어로 채택되었습니다. Kotlin의 장점 간결한 문법 변수를 Nullable과 NotNull로 나눔 (Null...