본문 바로가기

분류 전체보기41

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.
Array와 List 차이 Array와 List 차이 Array와 List의 차이를 알아보겠습니다. 각 자료구조의 자세한 설명은 https://kdgdev.tistory.com/8에 있습니다. 자 그런데 List에는 Linked List도 있고 Array List도 있죠? 전부 한번 알아볼게요 Array와 LinkedList 차이 둘의 대표적인 차이로는 시간복잡도, 할당되는 메모리의 차이가 있습니다. 시간복잡도 검색 Array O(1) 요소들을 index를 통해 곧바로 접근할 수 있는 랜덤 액세스 방식 LinkedList O(n) 어떤 요소를 접근할 때 순차적으로 검색하며 찾아야 하는 시퀀셜 액세스 방식 삽입/삭제 Array O(n) / 맨뒤에 데이터 O(1) 맨 뒤가 아닌 위치에 데이터의 삽입과 삭제가 일어날 때는 뒤에 데이터들.. 2023. 2. 18.