πŸ”™λ’€λ‘œκ°€κΈ°

λžŒλ‹€ ν‘œν˜„μ‹ κ°œλ…

μžλ°”μ—μ„œ λžŒλ‹€ ν‘œν˜„μ‹μ€ 기본적으둜 읡λͺ… ν•¨μˆ˜μ˜ ν•œ ν˜•νƒœμ΄λ‹€. 이것은 λ©”μ†Œλ“œλ₯Ό ν•˜λ‚˜μ˜ 식(expression)으둜 ν‘œν˜„ν•œ κ²ƒμœΌλ‘œ, λ©”μ†Œλ“œμ˜ λ§€κ°œλ³€μˆ˜, λ©”μ†Œλ“œ λ³Έλ¬Έ, λ°˜ν™˜ νƒ€μž…μ„ κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€. μ΄λŠ” 특히 μ»¬λ ‰μ…˜μ˜ μš”μ†Œλ₯Ό μˆœνšŒν•˜κ±°λ‚˜, μŠ€λ ˆλ“œ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” λ“±μ˜ μƒν™©μ—μ„œ μœ μš©ν•˜λ‹€.

λžŒλ‹€ ν‘œν˜„μ‹μ˜ λ™μž‘ 방식

λžŒλ‹€ ν‘œν˜„μ‹μ€ 읡λͺ… 클래슀λ₯Ό μ‚¬μš©ν•œ 것보닀 더 κ°„κ²°ν•˜κ²Œ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 있게 ν•΄μ£Όλ©°, λžŒλ‹€ ν‘œν˜„μ‹μ΄ μ‚¬μš©λ˜λŠ” κ³³μ—μ„œλŠ” μžλ°” μ»΄νŒŒμΌλŸ¬κ°€ 읡λͺ… 클래슀λ₯Ό μƒμ„±ν•˜μ—¬ λžŒλ‹€ ν‘œν˜„μ‹μ„ λŒ€μ²΄ν•œλ‹€. 즉, λžŒλ‹€ ν‘œν˜„μ‹μ€ 컴파일 μ‹œμ μ— 읡λͺ… 클래슀둜 λ³€ν™˜λ˜λŠ” 것이닀.

이 읡λͺ… ν΄λž˜μŠ€λŠ” ν•΄λ‹Ή λžŒλ‹€ ν‘œν˜„μ‹μ΄ μ μš©λ˜λŠ” λŒ€μƒ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κ²Œ λœλ‹€. 이런 λ°©μ‹μœΌλ‘œ λžŒλ‹€ ν‘œν˜„μ‹μ€ λ©”μ„œλ“œλ₯Ό κ°„κ²°ν•˜κ³  λͺ…λ£Œν•˜κ²Œ ν‘œν˜„ν•  수 있게 ν•΄μ£Όλ©°, μžλ°”μ˜ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ„ κ°€λŠ₯ν•˜κ²Œ ν•œλ‹€.

λžŒλ‹€λŠ” 주둜 이벀트 처리, 비동기 처리, 데이터 처리 등에 ν™œμš©λ  수 μžˆλ‹€.

기초적인 μ‚¬μš©λ²•

λžŒλ‹€ ν‘œν˜„μ‹μ€ (λ§€κ°œλ³€μˆ˜) β†’ {μ‹€ν–‰λ¬Έ}의 ν˜•νƒœλ₯Ό κ°€μ§„λ‹€. 예λ₯Ό λ“€μ–΄ 두 μ •μˆ˜μ˜ 합을 κ³„μ‚°ν•˜λŠ” λžŒλ‹€ ν‘œν˜„μ‹μ€ λ‹€μŒκ³Ό 같이 μž‘μ„±ν•  수 μžˆλ‹€.

(a, b) -> {return a + b};

λžŒλ‹€ ν‘œν˜„μ‹μ˜ 본문이 ν•œ λ¬Έμž₯일 κ²½μš°μ—λŠ” μ€‘κ΄„ν˜Έμ™€ return을 μƒλž΅ν•  수 μžˆλ‹€.

(a, b) -> a + b;

λžŒλ‹€ ν‘œν˜„μ‹μ€ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데에 주둜 μ‚¬μš©λœλ‹€. ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λž€ 였직 ν•˜λ‚˜μ˜ 좔상 λ©”μ†Œλ“œλ₯Ό κ°€μ§„ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§ν•œλ‹€.

// Runnable은 ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€.
Runnable runnalbe = () -> System.out.println("Hello, Lambda!");
runnable.run();

μœ„ λžŒλ‹€μ‹μ„ μ‹€ν–‰ν•˜λ©΄ μ½˜μ†”μ— Hello, Lambda! κ°€ 좜λ ₯λœλ‹€.

Untitled

Runnable μΈν„°νŽ˜μ΄μŠ€