인프런 커뮤니티 질문&답변

as a service님의 프로필 이미지
as a service

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

18강. 코틀린에서 컬렉션을 함수형으로 다루는 방법

18강 map 질문

해결된 질문

작성

·

266

1

val values = fruits.filter { fruit -> fruit.name == "사과" } .mapNotNull { fruit -> fruit.nullOrValue() }

 

nullable한 List에서 null이 아닌 element만 가지고 오는 mapNotNull중에서..

 

nullOrValue()는 임의로 만드신 확장함수인가요?

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 민철님!! 질문 남겨주셔서 감사합니다! 🙂

강의에서 잠깐 스쳐지나가는 코드까지 정확히 봐주셨군요~~ 크으~~ 👍

nullOrValue() 는 사실 Fruit class에 만들어 둔 멤버 함수입니다!!

class Fruit {
  fun nullOrValue(): Int? {
    return ...
  }
}

이렇게 null 또는 null이 아닌 값을 준다는 의미로 mapNotNull 을 설명드리려고 만들어 두었어요!

mapNotNull 같은 경우는 주어진 람다에서 null이 나오는 경우는 무시한채, null이 아닌 원소만 모아주거든요!

 

nullOrValue()Int? 를 반환한다면, mapNotNull 의 결과는 List<Int> 가 되는 것이죠!

다만 말씀해주신 것처럼 nullOrValue를 확장함수로도 만들 수 있습니다!

 

궁금증이 해결되셨으면 좋겠습니다~~ 감사합니다! 🙇🙇

as a service님의 프로필 이미지
as a service
질문자

영상 내에서 특별한 언급이 없으셔서 내장 메소드인줄 알았습니다. 확인 감사함니다

최태현님의 프로필 이미지
최태현
지식공유자

메소드 이름이 특히나 nullOrValue() 였어서 확실히 내장 메소드 처럼 생겼네요!! 😭😭

다음부터는 조금 더 잘 설명해보겠습니다! 짚어주셔서 정말 감사합니다~~~!! 🙏

또 궁금한 점 있으시면 언제든 편하게 질문 남겨주세요!! 🙏

as a service님의 프로필 이미지
as a service

작성한 질문수

질문하기