Android4 백킹프로퍼티(Backing Properties)란? 프로퍼티부터 설명하겠습니다. 자바클래스는 기본적으로 필드(변수 등)들을 private으로 설정하고 외부에서 값을 사용하거나 변경할 때 getter와 setter를 사용하여 접근 가능하게 해 줍니다. 이러한 getter와 setter를 프로퍼티라고 합니다. class C { private val _elementList = mutableListOf() val elementList: List get() = _elementList } 코틀린으로 개발하시는 분들은 많이 보셨을만한 코드입니다. 익숙지 않으신 분들은 _elementList와 elementList가 왜 분리되어 있고 차이가 뭐지? 라고 생각하실 수 있습니다. 이는 말씀드렸던 것처럼 _elementList란 필드를 private으로 설정하여 외부에서 접.. 2023. 4. 6. Kotlin 연산자 - ? / !! / ?: / is / as Kotlin 연산자 - ? / !! / ?: / is / as kotlin은 Java와 다르게 null이 가능한 Nullable Type과 불가능한 NonNullable Type이 있습니다. NonNullable Type val str: String Nullable Type val str: String? NonNullable Type에는 이름처럼 null값이 들어가지 않습니다. 런타임 중간에 null이 들어가게되면 에러가 발생하며 실행코드에서 null을 넣으면 빌드되지 않습니다. 특히 Java에서 Kotlin으로 Migration 할 때 Java는 모든 것이 Nullable인 것에 비해 Kotlin은 type을 명확하게 나누어 null에 대해 엄격하기 때문에 신경을 많이 써주셔야 합니다. 이러한 null.. 2023. 2. 22. Scope Function Scope 함수 Scope 함수란 객체를 할당하고 배정할 수 있는 공간인 Object context 내에서 코드 블록을 실행하기 위한 목적만을 가진 함수입니다. Scope 함수들을 람다식으로 호출할 때, 이는 임시로 범위(scope)를 형성합니다. 이 범위 내에서는 객체의 이름이 없어도 객체에 접근할 수 있습니다. 이러한 용도로 코드들을 더욱 간결하고 가독성을 좋게 합니다. let inline fun T.let(block: (T) -> R): R { return block(this) } // -> 타입 파라미터 // (T) -> 리시버 -> it // : R -> 리턴 타입 - 블럭에 마지막 코드 val length = str?.let { it.length } ?: 0 타입 파라미터 이란 Scope함수를.. 2023. 2. 21. List, Set, Map List, Set, Map Kotlin에는 컬렉션이라는 자료구조가 존재합니다. 컬렉션은 같은 타입의 여러 객체를 저장하고 관리하기 위해 설계된 자료구조입니다. 컬렉션에는 List, Set, Map이 존재하는데 이에 대해 알아보겠습니다. List List를 간단히 설명하자면 순서가 있는 자료구조입니다. 특징 포인터를 사용하여 다음 값의 주소를 가리켜 데이터가 순서대로 이어져 있습니다. index로도 접근 가능한데 이는 메모리상에 순서대로 있다는 것을 뜻하는 게 아니라 데이터의 순번을 의미합니다. element의 값으로 null을 넣을 수 없습니다. 구현 list에는 element의 추가와 변경이 불가능한 일반적인 list와 추가와 변경이 가능한 mutableList가 있습니다. val numbers = l.. 2023. 2. 20. 이전 1 다음