2024/02 13

플로우 생명 주기 함수

코틀린 코루틴을 요약한 내용입니다. 플로우는 요청이 한쪽 방향으로 흐르고 요청에 의해 생성된 값이 다른 방향으로 흐르는 파이프라 생각할 수 있음 플로우가 완료되거나 예외가 발생했을 때, 정보가 전달되어 중간 단계가 종료 모든 정보가 플로우로 전달되므로 값, 예외 및 다른 특정 이벤트를 감지할 수 있음 onEach onEach 람다식은 중단 함수 원소는 순서대로 처리 delay를 넣으면 각각의 값이 흐를 때마다 지연 suspend fun main() { flowOf(1, 2, 3, 4) .onEach { print(it) } .collect() } onStart 최종 연산이 호출될 때 플로우가 시작되는 경우에 호출 첫 번째 원소를 요청했을 때 호출 suspend fun main() { flowOf(1, 2..

코틀린 스터디 2024.02.02

플로우 만들기

코틀린 코루틴을 요약한 내용입니다. 원시값을 가지는 플로우 플로우를 만드는 가장 간단한 방법은 플로우가 어떤 값을 가져야하는지 정의하는 flowOf함수를 사용하는 것 suspend fun main() { flowOf(1, 2, 3, 4, 5).collect { print(it) } } 값이 없는 경우 emptyFlow() 함수 사용 suspend fun main() { emptyFlow().collect { print(it) } } 컨버터 asFlow 함수를 사용해서 iterable, Iterator, Sequence를 Flow로 바꿀 수 있음 suspend fun main() { listOf(1, 2, 3, 4, 5) .asFlow() .collect { print(it) } } 함수를 플로우로 바꾸기..

코틀린 스터디 2024.02.02

플로우의 실제 구현

코틀린 코루틴을 요약한 내용입니다. 플로우는 어떤 연산을 실행할지 정의 중단 가능한 람다식에 몇 가지 요소를 추가 Flow 이해하기 람다식은 한 번만 정의되고 여러 번 호출 할 수 있음 fun main() { val f: () => Unit => { print("A") print("B") print("C") } f() f() } 람다식은 순차적으로 호출되기 때문에, 이전 호출이 완료되기 전에 같은 람다식을 추가적으로 후출할 수는 없음 fun main() { val f: suspend () => Unit => { print("A") delay(1000) print("B") delay(1000) print("C") } f() f() } 람다식은 함수를 나타내는 파라미터를 가질 수 있음 람다식 f를 호출할 때..

코틀린 스터디 2024.02.02