원래는 함수를 호출한 곳에서 함수를 정의한 곳으로 갔다가 기능을 다 하면 함수 호출부로 돌아와서 밑에 코드를 읽어간다.
왔다 갔다 하지 않는다 = 외부 영향 x = 안정적
ex)
- o
: 매개변수 없이 Hi 구현
- x
- 2
: 다른 곳에 전달한다 = 매개변수로 사용된다.
: 객체 지향 특징 = class가 있다
but 람다식은 class가 없어도 쓸 수 있다.
즉, 자바의 객체 성질과 상반된다.
js에서 많이 사용된다.
- String 클래스에 있는 substring을 참조하고 있다. -> String 클래스에 의존적인 코드이다.
:substring은 string이 제공하는 문자열 절단 메서드
- 3
: return 쓰면 { } 필수
- ②
: 인터페이스가 메서드를 하나 가졌을때만, 람다식으로 구현 가능Computable c = ( ) -> { };
- ①
- x
:Predicate는 리턴타입이 bool타입이나, getHeight는 정수를 리턴하므로 오류 발생한다.
- x
: 반환타입 int. return 필요
- x
: A는 람다식으로 구현 가능하나, AA는 a와 aa 두개의 메서드를 구현해야 하므로 람다식 사용 x
- pass
- pass
- n = 3에서 오류 발생
: 인터페이스의 변수는 모두 상수이므로 변수값을 바꾸는 순간 람다식의 (from + n) 에 대입 시 오류가 생긴다.
- pass