반응형 [Android]/[Kotlin]15 Kotlin combine fun flowWithCombine() = runBlocking { val intFlow = flow { delay(5000); emit(100)} val charFlow = flow {emit('A'); delay(1000); emit('B')} intFlow.combine(charFlow) { num, character -> "$num / $character" }.collect { println(it) } } // 두 개가 모두 set 되어야 처음 호출 시작. fun main() { flowWithCombine() } 출력 : 100 / B 2023. 5. 7. [Kotlin / 코틀린] Setter 코틀린 클래스는 기본적으로 Setter를 제공해준다. 이를 캡슐화해주는 것이 중요하다. 1. Backing Property class User( private var _name: String ) { val name: String get() = this._name } 2. Custom class User( var name: String ) { fun updateName(name: String) { this.name = name } } 3. data class 근데 JPA에서는 data class를 사용하는게 좋지 않다는 것을 주의한다. = Entity class에서는 data class를 사용하는 것이 좋지 않다. 이유 : equals, hashCode, toString 모두 JPA Entity와는 100.. 2023. 3. 29. [공부] 코틀린 RecyclerView 예제 자바에서는 리사이클러뷰를 많이 다뤄봤지만 코틀린으로는 많이 다뤄보지 못했다. 사실 똑같다. 정리할 겸 예제를 작성한다. 강의는 아니므로 처음보는 분들에게 학습에는 어려움이 있을 수 있다! 아이템을 담을 뷰를 정의한다. item_recycler.xml 리사이클러뷰를 담을 레이아웃 정의 activity_main.xml 데이터를 다룰 클래스, 데이터클래스를 정의한다. Memo.kt package made.by.hevton.kotlin_example data class Memo(var no: Int, var title: String, var timestamp: Long) {} 데이터원본과 리사이클러뷰를, 포맷에 맞게 연결해줄 어댑터를 만든다. CustomAdapter.kt package made.by.hevto.. 2023. 1. 13. 코틀린 심화문법 - 코루틴 Deep Dive 기본적인 이론은, 예전에 정리한 글이 있다. 코루틴 (LightWeight Thread) - 콜백을 대체하여 비동기 처리를 간단하게 해줌. - 비동기 처리를 순차적으로 구현할 수 있음. - 스레드 블러킹을 방지할 수 있음. 코루틴의 구조는 다음과 같다. 코루틴스코프의 LifeCycle 지정.코루틴빌더 { // Coroutine Scope } fun main() { GlobalScope.launch { // Coroutine Block delay(1000L) println("World!") } println("Hello, ") } Hello, [프로그램 종료] 코루틴 빌더 launch로 만든 { } 내의 부분이 코루틴 블럭(코루틴 스코프)이 된다. fun main() { GlobalScope.launch .. 2023. 1. 13. 이전 1 2 3 4 다음 반응형