JavaRush /Java Blog /Random-KO /커피 브레이크 #150. Java의 람다 표현식의 예를 살펴보겠습니다. IntelliJ IDEA의 가장...

커피 브레이크 #150. Java의 람다 표현식의 예를 살펴보겠습니다. IntelliJ IDEA의 가장 과소평가된 7가지 기능

Random-KO 그룹에 게시되었습니다

Java의 람다 표현식 학습 예

출처 : Medium 이번 글에서는 자바 함수형 프로그래밍의 기초가 되는 람다 표현식에 대해 살펴보겠습니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 1

람다 표현식 구문

람다 식의 구문은 직관적이고 이해하기 쉽고 사용하기 쉽습니다. 람다 식은 다음으로 구성됩니다.
  1. 입력 매개변수
  2. 연산자 화살표
  3. 표현식/문 블록
일반적인 형식은 다음과 같습니다.
<input-params> -> <function-code>

람다 표현식의 예

람다 표현식은 예제를 통해 가장 잘 이해되므로 그 중 일부를 살펴보겠습니다.

1. 입력을 받아들이지 않고 출력을 반환하지 않습니다.

간단한 람다 식은 입력을 받지 않고 출력을 반환하지 않습니다. 말 그대로 컨텍스트 없이 실행되는 코드 블록일 뿐입니다.
() -> System.out.println("Here I am!");
입력 매개변수 위치의 시작 부분에 ()를 지정하면 매개변수가 전달되지 않음을 의미합니다(매개변수가 없는 메소드 뒤에 오는 빈 괄호의 경우).

2. 단일 입력을 받아들이고 출력을 반환하지 않습니다.

람다 표현식이 매개변수를 사용하도록 하려면 이를 입력 매개변수 위치에 배치합니다.
name -> System.out.println("Here you are too, " + name +  "!");
메모 : 입력 매개변수가 하나인 경우 괄호를 생략할 수 있습니다. (이름)을 지정할 수도 있습니다. 이는 완전히 허용됩니다.

3. 여러 입력을 받아들이고 출력을 반환하지 않습니다.

여러 입력 매개 변수를 람다 식에 전달할 때 다음을 수행해야 합니다.
  • 매개변수를 괄호로 묶습니다.
  • 쉼표를 사용하여 구분하세요.
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. 코드 섹션에 여러 문이 포함되어 있습니다.

한 줄 문에 람다 식을 저장하는 것은 좋은 습관으로 간주됩니다. 하지만 여러 줄을 사용할 수도 있습니다.
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. 반환 유형은 지정되지 않습니다.

알다시피 람다 식을 정의할 때 반환 유형이 지정되지 않습니다. 예는 다음과 같습니다.
() -> System.out.println("I don't return anything!")
그리고 하나 더:
() -> "I return this String!"
두 코드 예제는 거의 동일하지만 두 번째 람다는 문자열을 반환합니다. 사용할 때 이 점을 명심하시기 바랍니다. 물론 컴파일러는 함수 설명자의 조건부 사용을 통해 이들 간의 차이점을 이해합니다.

6. 가능한 경우 유형 추론이 자동으로 적용됩니다.

유형을 결정하기 위해 컴파일러는 유형 추론을 사용합니다. 이를 위해 람다 표현식의 실행 컨텍스트를 살펴봅니다. 개발자에게 이는 특정 유형으로의 캐스팅에 대해 걱정할 필요가 없음을 의미합니다.

7. 함수 설명 표기법

람다 표현식이 어떤 유형에 할당될 수 있는지 생각할 때 함수 설명자를 사용하는 것이 매우 유용합니다. 함수 핸들은 기본적으로 람다 식(또는 메서드)이 제공하는 메서드 서명입니다. 구문은 코드 섹션 대신 출력 유형 섹션이 있다는 점을 제외하면 람다 식과 거의 동일합니다. 예는 다음과 같습니다.
<input-parameter-types> -> <output-parameter-type>

함수 설명자의 예

다음은 함수 설명자의 몇 가지 예입니다. () -> () 입력 매개변수를 사용하지 않고 값을 반환하지 않는 메서드입니다. (String) -> () 입력 매개변수를 받아들이고 값을 반환하지 않는 메서드입니다. () -> (int, float) 입력 매개변수를 사용하지 않고 intfloat(int[]) -> 를 반환하는 메서드입니다 . (SortedMap<Character, Integer>) int 배열을 가져와 Character 에서 IntegerSortedMap을 반환하는 메서드입니다 . 함수 설명자를 사용하면 람다 식에 사용할 수 있는 대상 유형을 고려할 때 유형 호환성을 더 쉽게 평가할 수 있습니다.

결론

보시다시피 람다 표현식은 동작을 캡슐화하는 깔끔하고 간단한 방법입니다. 이는 JDK 8 릴리스와 함께 Java에 도입된 함수형 프로그래밍 패러다임의 기초 중 하나입니다.

IntelliJ IDEA의 가장 과소평가된 7가지 기능

출처: 더 나은 프로그래밍 믿기 어렵겠지만, 수년이 지난 지금도 IntelliJ IDEA의 이러한 뛰어난 기능을 모르는 사람들을 만납니다.

1.무엇이든 찾아보세요

모든 키 조합을 기억하고 IntelliJ IDEA가 수행할 수 있는 모든 기능을 추적하는 것은 매우 어렵습니다. 이것이 제가 IntelliJ IDEA 내에서 검색을 자주 사용하는 이유입니다. 이를 통해 필요한 메뉴 항목, 도구, 설정은 물론 파일까지 한 곳에서 찾을 수 있습니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 2

2. 당신이 어디에 있는지 알아라

이 기능을 찾기 전에는 "열린 파일 선택" 버튼을 사용하여 현재 편집 중인 파일을 프로젝트 트리에 표시했습니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 3이제 IntelliJ IDEA가 이 작업을 수행합니다. 이는 기본 옵션이 아니므로 새 프로젝트나 기존 프로젝트마다 설정해야 합니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 4

3. SQL 최적화

IDE의 기본 데이터베이스 플러그인이 단순한 SQL 실행기 그 이상이라는 것을 알고 계셨습니까? 지속성 계층(I/O)이 항상 애플리케이션에서 가장 느린 부분이라는 사실을 고려하여 관계형 데이터베이스로 작업할 때 항상 SQL 쿼리의 실행 계획이 올바른지 확인합니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 5

4. 여러 줄 편집

이전에 Sublime Text Editor에서 이 기능을 사용해 본 적이 있을 것입니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 6

5. 뒤로/앞으로 이동

실제로 저는 뒤로가기나 앞으로가기 버튼을 눌러 이전에 있던 곳으로 돌아가는 경우가 많습니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 7뒤로/앞으로 이동: ⌥⌘+왼쪽/오른쪽 화살표(Win/Linux의 경우 Ctrl+Alt+왼쪽/오른쪽 화살표). 최근 파일을 열려면 ⌘E(Win/Linux의 경우 Ctrl+E)를 누르세요.

6. 북마크

언제든지 빠르게 참조할 수 있도록 코드의 중요한 부분을 북마크에 추가합니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 8북마크로 이동하려면 ⌃+<숫자>(Win/Linux의 경우 Ctrl+<숫자>)를 누르세요. 한 번에 3개 이상의 북마크를 사용하지 않는다고 바로 말씀드리겠습니다. 그러면 북마크의 용도를 기억하기가 어려워지기 때문입니다.

7. 모든 것을 위한 하나의 편집기

저는 Visual Studio Code 또는 Sublime과 같은 다른 텍스트 편집기를 열어서 코드 일부, JSON, XML을 저장한 다음 연결하곤 했습니다. 하지만 이는 코드베이스(프로젝트)의 일부가 아니며 IntelliJ IDEA는 이와 같은 것을 생성하거나 편집하려고 할 때 이를 분명히 상기시켜 줍니다. 그러다가 동료 중 한 명이 Snippets을 사용하는 것을 보고 그것이 얼마나 천재적인지 깨달았습니다. 커피 브레이크 #150.  Java의 람다 표현식의 예를 살펴보겠습니다.  IntelliJ IDEA의 가장 과소평가된 기능 7가지 - 9새 조각 파일: ⇧⌘N(Win/Linux의 경우 Shift+Ctrl+N). 스니펫은 프로젝트의 모든 창에서 사용 가능하고 동기화됩니다. 나는 종종 다른 곳에서 얻은 일부 JSON 또는 SQL을 검사하고 형식화하는 데 이를 사용합니다.

나의 비밀 레시피

금상첨화는 매일 타이핑 시간을 엄청나게 절약해 주는 기능입니다. Tabnine 은 AI 기반 Intellij IDEA 코드를 컴파일하기 위한 JetBrains 플러그인입니다. 지금은 무료지만 서두르세요. 오래 가지 못할 것 같아요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION