[기술 면접 질문] 람다 표현식(Lambda Expression)

0

기술 면접 준비

목록 보기
7/19
post-thumbnail

[기술 면접 질문] 람다 표현식(Lambda Expression)

📝요약

람다 표현식란 간단히 말하면 익명 함수로, 보통 한 번 사용되고 재사용되지 않는 함수를 만들 때 사용합니다. 람다 표현식을 사용하는 예로는, 메서드가 하나 뿐인 무명 객체 대신 사용하는 경우가 있습니다.

📌참고자료

람다 표현식이란?

  • 익명 함수
  • 보통 한번 사용되고 재사용되지 않는 함수를 만들 때 사용
  • 람다 문법: {파라미터: 타입, 파라미터: 타입 ... -> 본문}
    val info: (Int, String) -> String = {age: Int, name: String -> "Info: ${age}, ${name}"}
    • 람다의 반환값: 람다의 마지막 문장
    • 함수 호출 시 맨 뒤에 있는 인자가 람다식인 경우, 람다를 소괄호 밖으로 뺄 수 있다

람다 표현식의 사용

  • 예1) 메서드가 하나 뿐인 무명 객체 대신 사용하는 경우
    • SAM(Single Abstract Method)
    • 람다식으로 SAM의 익명 객체를 만들어 인자로 넘기는 방식 → 보일러 플레이트 코드 감소!
    // 무명 내부 클래스 선언하는 방식 (자바)
    button.setOnClickListener(new OnClickListener() {
    	@Override
        public void onClick(View view) {  
    	    doSomething()
        }
    });
    
    // 람다 사용
    button.setOnClickListener({ view -> 
      doSomething() 
    })
 
    button.setOnClickListener{ 
    	doSomething() 
    }
  • 예2) 일련의 동작을 변수에 저장하거나 다른 함수에 넘기는 경우
    • 컬렉션 클래스의 filter 함수의 경우, true/false 를 반환하는 함수(predicate)을 인자로 받음
    val list = listOf(1, 2, 3, 4, 5)
    println(list.filter { it % 2 == 0 })
profile
Be able to be vulnerable, in search of truth

0개의 댓글