JavaRush /Blog Java /Random-VI /Nghỉ giải lao #150. Hãy cùng nghiên cứu các ví dụ về biểu...

Nghỉ giải lao #150. Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java. 7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA

Xuất bản trong nhóm

Học các ví dụ về biểu thức lambda trong Java

Nguồn: Medium Trong bài viết này, chúng ta sẽ xem xét các biểu thức lambda, nền tảng của lập trình hàm trong Java. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 1

Cú pháp biểu thức Lambda

Cú pháp của biểu thức lambda trực quan, dễ hiểu và dễ sử dụng. Một biểu thức lambda bao gồm:
  1. thông số đầu vào
  2. mũi tên điều hành
  3. khối biểu thức/câu lệnh
Định dạng chung là:
<input-params> -> <function-code>

Ví dụ về biểu thức lambda

Biểu thức Lambda được hiểu rõ nhất thông qua các ví dụ, vì vậy hãy xem xét một số trong số đó.

1. Không nhận đầu vào và không trả lại đầu ra

Một biểu thức lambda đơn giản không nhận bất kỳ đầu vào nào và không trả về bất kỳ đầu ra nào—nó thực sự chỉ là một khối mã chạy mà không có bất kỳ ngữ cảnh nào.
() -> System.out.println("Here I am!");
Chỉ định () ở đầu, ở vị trí tham số đầu vào, có nghĩa là không có tham số nào được truyền (như với dấu ngoặc đơn trống theo sau một phương thức không có tham số).

2. Chấp nhận một đầu vào, không trả về đầu ra

Để làm cho biểu thức lambda nhận một tham số, chúng ta đặt nó vào vị trí tham số đầu vào:
name -> System.out.println("Here you are too, " + name +  "!");
GHI CHÚ : Nếu chúng ta có một tham số đầu vào, chúng ta có thể bỏ qua dấu ngoặc đơn. Chúng ta cũng có thể chỉ định (tên), điều này hoàn toàn có thể chấp nhận được.

3. Chấp nhận nhiều đầu vào, không trả về đầu ra

Khi truyền nhiều tham số đầu vào cho biểu thức lambda, chúng ta phải:
  • đặt tham số trong ngoặc đơn
  • sử dụng dấu phẩy để phân tách giữa chúng
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Chứa nhiều câu lệnh trong một đoạn mã

Lưu trữ biểu thức lambda trong câu lệnh một dòng được coi là cách làm tốt. Nhưng bạn cũng có thể sử dụng nhiều dòng:
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. Kiểu trả về không bao giờ được chỉ định

Như bạn có thể nhận thấy, khi xác định biểu thức lambda, không có kiểu trả về nào được chỉ định. Đây là một ví dụ:
() -> System.out.println("I don't return anything!")
Và một cái nữa:
() -> "I return this String!"
Cả hai ví dụ mã đều gần giống nhau, nhưng lambda thứ hai trả về một chuỗi. Hãy ghi nhớ điều này khi sử dụng chúng. Tất nhiên, trình biên dịch sẽ hiểu được sự khác biệt giữa chúng thông qua việc sử dụng có điều kiện các bộ mô tả hàm.

6. Suy luận kiểu được áp dụng tự động nếu có thể

Để xác định loại, trình biên dịch sẽ sử dụng suy luận kiểu. Để làm điều này, nó xem xét bối cảnh thực thi của biểu thức lambda. Đối với nhà phát triển, điều này có nghĩa là họ sẽ không phải lo lắng về việc chuyển sang một loại cụ thể.

7. Ký hiệu mô tả hàm

Khi chúng ta nghĩ về loại biểu thức lambda có thể được gán cho, việc sử dụng bộ mô tả hàm sẽ rất hữu ích. Một điều khiển hàm về cơ bản là một chữ ký phương thức mà biểu thức (hoặc phương thức) lambda cung cấp. Cú pháp của nó gần giống như biểu thức lambda, ngoại trừ việc thay vì phần mã, có phần loại đầu ra. Đây là một ví dụ:
<input-parameter-types> -> <output-parameter-type>

Ví dụ về mô tả hàm

Dưới đây là một số ví dụ về bộ mô tả hàm: () -> () Một phương thức không nhận tham số đầu vào và không trả về giá trị. (Chuỗi) -> () Phương thức chấp nhận tham số đầu vào và không trả về giá trị. () -> (int, float) Một phương thức không nhận tham số đầu vào và trả về intfloat(int[]) -> . (SortedMap<Character, Integer>) Phương thức lấy một mảng int và trả về SortedMap từ Character đến Integer . Việc có bộ mô tả hàm giúp đánh giá tính tương thích của kiểu dễ dàng hơn khi xem xét loại mục tiêu nào chúng ta có thể sử dụng cho biểu thức lambda.

Phần kết luận

Như bạn có thể thấy, biểu thức lambda là một cách gọn gàng và đơn giản để gói gọn hành vi. Nó là một trong những nền tảng của mô hình lập trình chức năng được giới thiệu trong Java với việc phát hành JDK 8.

7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA

Nguồn: Better Programming Thật khó tin nhưng nhiều năm sau tôi vẫn gặp những người chưa biết về những tính năng tuyệt vời này trong IntelliJ IDEA.

1.Tìm bất cứ thứ gì

Thật khó để nhớ từng tổ hợp phím và theo dõi mọi thứ mà IntelliJ IDEA có thể làm. Đây là lý do tại sao tôi thường sử dụng tìm kiếm bên trong IntelliJ IDEA. Điều này giúp tôi tìm thấy các mục menu, công cụ, cài đặt và thậm chí cả các tệp tôi cần ở cùng một nơi. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 2

2. Biết bạn đang ở đâu

Trước khi tìm thấy tính năng này, tôi đã sử dụng nút “Chọn tệp mở” để hiển thị tệp hiện đang được chỉnh sửa trong cây dự án. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 3Bây giờ IntelliJ IDEA thực hiện việc này cho tôi. Đây không phải là tùy chọn mặc định, vì vậy bạn sẽ cần đặt nó cho từng dự án mới hoặc hiện có. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 4

3. Tối ưu hóa SQL

Bạn có biết rằng plugin cơ sở dữ liệu mặc định trong IDE của bạn không chỉ là một trình thực thi SQL đơn giản? Do lớp lưu trữ (I/O) luôn là phần chậm nhất của ứng dụng nên tôi luôn đảm bảo rằng các truy vấn SQL của mình có kế hoạch thực thi tốt khi làm việc với cơ sở dữ liệu quan hệ. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 5

4. Chỉnh sửa nhiều dòng

Bạn có thể đã sử dụng tính năng này trong Sublime Text Editor trước đây. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 6

5. Quay lại/chuyển tiếp

Tôi thực sự thường quay lại vị trí trước đó bằng cách nhấn nút quay lại hoặc tiến lên. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 Tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 7Quay lại/tiến lên: ⌥⌘+mũi tên trái/phải (Ctrl+Alt+mũi tên trái/phải cho Win/Linux). Để mở các tệp gần đây, nhấn ⌘E (Ctrl+E cho Win/Linux).

6. Dấu trang

Tôi đánh dấu những phần quan trọng của mã để có thể nhanh chóng tham khảo bất cứ lúc nào. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 8Để đi tới một dấu trang, nhấn ⌃+<number> (Ctrl+<number> dành cho Win/Linux). Tôi sẽ nói ngay rằng tôi không sử dụng nhiều hơn ba dấu trang cùng một lúc, vì khi đó việc nhớ chúng dùng để làm gì sẽ trở nên khó khăn.

7. Một trình soạn thảo cho mọi thứ

Tôi thường mở các trình soạn thảo văn bản khác như Visual Studio Code hoặc Sublime để lưu các phần mã, JSON, XML, sau đó liên kết với chúng. Nhưng đây không phải là một phần của codebase (dự án) và IntelliJ IDEA nhắc nhở bạn rõ ràng về điều này khi bạn cố gắng tạo hoặc chỉnh sửa thứ gì đó như thế này. Sau đó, tôi thấy một đồng nghiệp của mình sử dụng Snippets và nhận ra nó thật tuyệt vời. Nghỉ giải lao #150.  Hãy cùng nghiên cứu các ví dụ về biểu thức lambda trong Java.  7 tính năng bị đánh giá thấp nhất của IntelliJ IDEA - 9Tệp đoạn mã mới: ⇧⌘N (Shift+Ctrl+N cho Win/Linux). Các đoạn mã có sẵn và được đồng bộ hóa trên tất cả các cửa sổ dự án của bạn. Tôi thường sử dụng chúng để kiểm tra và định dạng một số JSON hoặc SQL mà tôi lấy được từ nơi khác.

Công thức bí mật của tôi

Điều thú vị nhất là một tính năng giúp tôi tiết kiệm rất nhiều thời gian gõ phím mỗi ngày: Tabnine là một plugin JetBrains để biên dịch mã Intellij IDEA được hỗ trợ bởi AI. Hiện tại nó miễn phí, nhưng hãy nhanh lên, tôi không nghĩ nó sẽ tồn tại lâu đâu.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION