29일차 - 람다식(1)
안녕하세요. pitang입니다.
람다식을 알아보도록 하겠습니다.
람다식
람다식은 익명 함수를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다.
람다식은 (매개변수) -> {실행코드} 형태로 작성되는데,
함수 정의 형태를 띄고 있지만 런타임 시에 인터페이스의 익명 구현 객체로 생성된다.
람다식 기본 문법
람다식의 작성방법은
(타입 매개변수, ...) -> {실행문; ...}
이다.
-> 기호는 매개 변수를 이용해서 중괄호 {}를 실행한다는 뜻으로 해석하면 된다.
하나의 매개 변수만 있다면 괄호()를 생략할 수 있고, 하나의 실행문만 있다면 중괄호 {}도 생략할 수 있다.
(a) 가 아닌 a라 쓸 수 있고, { System.out.println(a); } 이 아닌 System.out.println(a) 라고 쓸 수 있다는 뜻이다.
만약 매개 변수가 없다면 람다식에서 매개 변수 자리가 없어지므로 빈 괄호()를 반드시 사용해야 한다.
() -> { 실행문; ... }
중괄호{}를 실행하고 결과값을 리턴해야 한다면 다음과 같이 return문으로 결과값을 지정할 수 있다.
(x, y) -> {return x+y; };
중괄호{}에 return문만 있을 경우, 람다식에서는 return문을 사용하지 않고 작성한다.
(x, y) -> x+y
위의 것들은 천천히 하나하나 알아볼 것이다.
ex1)
람다식을 사용하지 않았을 경우
ex2)
람다식을 사용하지 않은경우와 사용한 경우, 간단해지는 걸 확인할 수 있다.
ex3)
하나의 실행문만 있다면 중괄호 {}도 생략 가능하다.
ex4)
중괄호 {}에 return문만 있을 경우, 람다식에서는 return문도 생략 가능하다.
ex5)
매개변수와 리턴값이 없는 람다식
ex6)
매개변수가 있고 리턴값이 없는 경우
ex7)
매개변수가 두개가 있고 리턴값이 없는 경우
ex8)
감사합니다.
*m1 맥북을 사용 중입니다.*