💡 Kotlin 11

[Kotlin] ifEmpty

아주 편한 인라인 함수가 있어서 부랴부랴 포스팅합니다 kotlin 버전 1.3 이상부터 사용가능해요 ifEmptyinline fun , R, R> C.ifEmpty(defaultValue: () -> R): Rinline fun , R, R> C.ifEmpty(defaultValue: () -> R): Rinline fun , R, R> M.ifEmpty(defaultValue: () -> R): R 만약 이 배열/컬렉션/맵이 비어 있지 않으면 이 배열/컬렉션/맵 을 반환하고, 비어 있으면 defaultValue 함수를 호출한 결과를 반환fun main() { val myArray: Array = arrayOf() val defaultValue = listOf(42) val resul..

💡 Kotlin 2025.03.31

[kotlin] forEach(람다식)의 return break, continue처럼 사용하기

return 가장 가까운 enclosing function을 return 시킨다 val arr = arrayListOf("A","B","C","D","E","F","G") fun checkForEach() { arr.forEach { if(it == "D") return } println("찍힐까요 안 찍힐까요?") } 위의 예제를 실행하면 어떤 결과가 나타날까? 더보기 checkForEach()를 return 시키므로, println문이 찍히지 않는다 함수내의 lambda식을 return하고 싶다면? return@label 특정 label의 lambda식을 return 한다 val arr = arrayListOf("A","B","C","D","E","F","G") fun checkForEach() { ..

💡 Kotlin 2024.01.05

[Activity] LaunchMode

안녕하세요오 🤟 오늘은 Activity의 LaunchMode에 관해 알아보겠습니다 이게 은근 이름도 비슷하고 헷갈리더라구요 🥲 포스팅하면서 다시 한 번 공부해보는 시간이였습니다 그럼 스탙-! 🔍 LaunchMode 간단히 말하자면 launmode는 말 그대로 Activity가 Task에서 어떻게 실행되는지에 대해 설정하는 부분입니다. 정할 수 있는 속성으론 standard, singleTop, singleTask, singleInstance 가 있습니다 우선 각 속성을 알아보기 전, 아래 2가지에 대해 먼저 알아보겠습니다 📌 Task , 📌 Flag Activity는 FILO order로, 가장 처음에 실행된 Activity는 Root, 마지막에 실행되는 Activity는 Top이 됩니다. (Andro..

💡 Kotlin 2023.06.15

[Kotlin] Collection 함수 - (1) 원소 변환 및 필터, 특정원소 검색

컬렉션의 원소 타입을 변환하거나 필터링 하는 과정은 코딩테스트에서 빈번하게 사용되더라구요 꼭 익혀두도록 해야겠어요 :) Collection에 확장함수는 정말 너무나도 많아요.. 공식문서에 스크롤이 이를 증명합니다.. 어떻게 나눠야 하나 많이 고민했는데 우선 1️⃣ 원소 변환 및 필터, 특정원소 검색 2️⃣ 수학적 개념 3️⃣ index 관련 4️⃣ 형식변환5️⃣ 값 반환 및 정렬 순으로 정리해볼까 해요 :) 이유는 제맘입니다..🫢 바뀔수도 있어요 ,, 원소 변환 Map Collection 타입을 Collection 타입으로 변환 공식문서엔 아래와 같이 설명되어있어요 Returns a list containing the results of applying the given transform function..

💡 Kotlin 2023.01.12

[Kotlin] mutable Collection

2023.01.03 - [💡 Kotlin] - [Kotlin] Collection (List, Set, Map) [Kotlin] Collection (List, Set, Map) 많이 접한만큼 익숙한 자료구조이지만, 한번 더 살펴보겠습니다 Collection 자료구조 중 하나로, 크게 3가지 컬렉션이 있습니다 (List, Set, Map) List와 Set은 Collection을 상속받고, Map은 독자적입니다 간 kong-droid.com 이전 포스팅에서 Collection에 대해 알아봤는데, Collection 인터페이스에서 원소를 수정하려면 Mutable Collection을 사용해야해요 오늘은 Mutable Collection에 대해 알아보겠습니다 ✏️ MutableCollection interf..

💡 Kotlin 2023.01.08

[Kotlin] Collection (List, Set, Map)

많이 접한만큼 익숙한 자료구조이지만, 한번 더 살펴보겠습니다 Collection 자료구조 중 하나로, 크게 3가지 컬렉션이 있습니다 (List, Set, Map) List와 Set은 Collection을 상속받고, Map은 독자적입니다 간단히 3가지의 특징, 생성법에 대해 알아보자면, ✅ List : 순서 O val list: Collection = listOf(1,2,3) ✅ Set : 순서 X, 중복 X val set: Collection = setOf(9,8,7) ✅ Map : [키-값]의 형태 , 키는 중복 X val map: Map = mapOf("First" to 0, "Second" to 1) Collection Interface interface Collection : Iterator Co..

💡 Kotlin 2023.01.03

[kotlin] Pair

Pair 두 변수를 하나로 묶어주는 클래스 (사용되는 경우가 많으므로 잘 알아두기) data class Pair : Serializable Pair 클래스의 Properties - first : Pair의 첫번째 값 - second : Pair의 두번째 값 Pair 생성하기 var (x,y) = Pair(3, 0.14) var (x,y) = Pair(3, 0.14) 자료형은 삭제해도 상관없다 Pair의 리스트화 toList() var x = Pair(3, 0.14).toList() toList()를 통해 리스트화 가능 두 값을 Pair화 시키려면 val test : Pair = 3 to 0.14 ✔️ to 확장함수 사용 infix fun A.to(that: B): Pair = Pair(this, that..

💡 Kotlin 2023.01.02

[Kotlin] apply, let, with, also, run 비교 (Scope Function)

안녕하세요 :) 오늘은 코틀린의 다섯 가지 함수를 비교해보고자 합니다. [2022.07.14 업데이트] SCOPE 함수란? 객체의 컨텍스트 내에서 코드 블록을 실행하는 것이 유일한 목적인 함수입니다. 람다식으로 SCOPE 함수를 호출할 때 임시적으로 범위를 생성하고, 해당 범위 내에선 객체의 이름 없이 객체에 접근할 수 있습니다(it, this 등) 기본적으로 5가지 함수는 같은 기능을 하지만 표현식이 어떻게 되는지, 블록 내에서 객체 사용법에 따라 구분합니다 📍 let 함수원형 public inline fun T.let(block : (T) -> R): R 객체를 블록의 인자(T)로 넘기고, 람다의 결과값(R)을 반환합니다. val numbers = mutableListOf("one", "two", "..

💡 Kotlin 2022.07.14

[Kotlin] 배열

안녕하세요 😊 코틀린에서 배열을 생성하고 사용하는 방법에 대해 알아보고자 합니다 포스팅에서는 Int형 배열을 생성하는 방법을 예로 들겠습니다 일차원 배열 생성하기 코틀린을 이용하여 다양한 방법으로 배열을 생성해보겠습니다 1. arrayOf() 배열의 선언과 동시에 데이터를 넣는 방법으로, 자료형 선언 없이 ()안에 데이터를 넣어주면 됩니다 Array 형태로 생성됩니다 val arr1 = arrayOf(1,2,3) // Array 2. 자료형ArrayOf() 배열의 선언과 동시에 데이터를 넣는 방법으로, 자료형ArrayOf()로 선언합니다 IntArray 형태로 생성됩니다 val arr2 = intArrayOf(1,2,3) // IntArray 3. arrayOfNulls(배열 크기) 비어있는 배열을 먼저..

💡 Kotlin 2022.07.02

[Kotlin/Android] Room 사용하기

로컬 데이터베이스인 Room을 사용해보다가 꾸준히 사용하게 될 DB일 것 같아 정리해보려고 합니다 Room은 기본 개념을 이해하는 것이 중요하기 때문에, 아주 간단한 예제로 진행하겠습니다. [2022.06.30] 업데이트 Room이란? Jectpack 라이브러리의 일부로 내부 저장소이며, ORM 라이브러리(DB데이터를 JAVA/Kotlin으로 변환) 입니다 Room 사용이 권장되는 이유 1. SQLite를 활용하여, 데이터 접근이 편리하고 유지보수가 용이하며, 마이그레이션도 간단합니다 2. SQLite와 달리, 컴파일 타임에 쿼리의 적합성을 확인할 수 있습니다 즉, SQLite보다 편리한 DB라고 생각하시면 될 것 같습니다 우선, Room을 사용하기 전 구성 요소에 대해 간단히 알아보고, 간단한 로그인,..

💡 Kotlin 2022.06.30