• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

18강 map 질문

23.08.24 23:30 작성 조회수 197

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를 확장함수로도 만들 수 있습니다!

 

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

강민철님의 프로필

강민철

질문자

2023.08.25

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

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

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

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