확장함수에서 질문입니다!
250
작성한 질문수 29
확장함수 만드실때 두 번째 인자로 collect: suspend(T) -> Unit 이 분이 잘 이해가 안됩니다. collect해야될 요소 즉 T 타입이 들어가야 되는건 알겠는데 왜 람다가 쓰이는 건가요?
답변 1
1
fun <T> FavoriteFragment.collectLatestStateFlow(flow: Flow<T>, collect: suspend (T) -> Unit) { viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { flow.collectLatest(collect) } }}
이 코드에서 `collectLatestStateFlow` 함수는 파라미터로 `flow`와 `collect`를 받습니다. `flow`는 UI에 표시할 `Flow` 형 데이터로 `bookSearchViewModel.favoriteBooks`이고, `collect`는 그 데이터를 표시하는데 쓰일 함수로 `bookSearchAdapter.submitList`가 됩니다.
`collectLatestStateFlow` 함수의 파라미터로 `collect: suspend (T) -> Unit`라는 람다식을 사용하면, 파라미터가 없는 suspend 함수를 받아서 작업을 수행하고 아무것도 반환하지 않는 함수를 `collect`라는 이름의 파라미터로 전달하겠다는 뜻이 됩니다. `bookSearchAdapter.submitList`가 그러한 `collect` 역할을 하는 함수로 전달되는 것이지요.
혹시 collectLatest가 아닌 collect로 사용하고 싶으시면 다음 링크를 참고하시면 됩니다.
https://stackoverflow.com/a/71603790
Coroutine, Flow 질문
0
401
1
Transformations import 안됨
0
588
1
moshi관련 질문입니다.
0
566
2
searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.
0
375
1
안드로이드에서 아키텍처 패턴
0
423
1
RecyclerView.Adapter vs ListAdpater
0
473
1
Flows 와 Coroutine
1
573
1
[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문
0
370
1
코루틴 메모리 관련해서 질문드립니다!
0
456
1
Java Bill Pugh Solution 에서 INSTANCE
0
469
1
nested json에서 특정 부분만 파싱하는법
0
495
1
Fragment에서의 viewBinding
0
525
3
toolbar 질문드립니다.
0
417
2
EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?
2
568
1
코루틴 관련 질문
0
549
1
오류
1
494
2
강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?
1
749
1
EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?
1
354
1
서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?
1
530
1
GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?
1
1271
1
EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요
1
498
1
ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?
1
438
1
Room DB에 id 항목 추가
0
255
1
안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.
0
410
2





