Computer >> Máy Tính >  >> Lập trình >> Java

Biểu thức Lambda trong Java:Hướng dẫn

Cách sử dụng biểu thức Lambda trong Java

Bạn đã bao giờ nghĩ rằng một số phương thức có thể nằm gọn trên một dòng, nếu nó không phù hợp với cú pháp Java dài dòng mà bạn phải sử dụng để khai báo một phương thức? Bạn không phải là người duy nhất.

Phương thức là một tính năng cực kỳ hữu ích trong lập trình.

Phương thức là một khối mã thực hiện một cái gì đó cụ thể trong chương trình của bạn. Chúng được sử dụng vì khi bạn xác định một phương thức, bạn có thể gọi nó nhiều lần. Điều này giúp giảm bớt sự dư thừa trong mã của bạn, do đó giúp bạn bảo trì mã dễ dàng hơn.

Trong hướng dẫn này, chúng ta sẽ nói về các biểu thức lambda trong Java. Đây là một loại phương thức đặc biệt mà bạn có thể sử dụng được gọi là biểu thức lambda, thực hiện một giao diện chức năng. Chúng ta sẽ nói về cách chúng hoạt động và tại sao chúng được sử dụng.

Giao diện chức năng là gì?

Trước khi chúng ta tiếp tục nói về biểu thức lambda, bạn phải hiểu các giao diện chức năng. Đây là những giao diện chỉ chứa một phương thức trừu tượng. Một phương thức trừu tượng có trong một giao diện chức năng cho biết mục đích của giao diện.

Hãy xem xét ví dụ này:

interface CalculateThree {
	double multiply_by_three(String day);
}

Chúng tôi đã tạo một giao diện có tên là CalculatedThree. Giao diện này chỉ có một phương thức, multiply_by_three , có nghĩa là nó là một giao diện chức năng.

Biểu thức Lambda Java là gì?

Một biểu thức lambda là một phương thức không có tên. Nó được sử dụng để triển khai một phương thức đã được xác định trong một giao diện chức năng. Các biểu thức Lambda đôi khi được gọi là các phương thức ẩn danh do chúng không có tên.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Biểu thức Lambda sử dụng toán tử mũi tên, chia chúng thành hai phần:

(parameter list) -> lambda body

Phía bên trái chứa các tham số mà biểu thức sử dụng; phía bên phải chứa mã sẽ được chạy khi biểu thức Lambda được thực thi. Các hàm Lambda có thể chấp nhận một tham số duy nhất hoặc nhiều tham số.

Cách sử dụng biểu thức Lambda

Hãy tạo một chương trình lấy một số do người dùng chèn vào và nhân nó với ba. Chúng tôi sẽ bắt đầu bằng cách viết mã chấp nhận một số từ người dùng:

import java.util.Scanner;

class Main {
public static void main(String args[]) {
	Scanner user_input = new Scanner(System.in);
	System.out.println("Insert a number to multiply by three: ");

	double user_number = user_input.nextDouble();
	}
}

Khi chúng tôi chạy mã này, người dùng của chúng tôi sẽ được nhắc chèn một số để nhân lên. Chương trình của chúng tôi sẽ đọc số đó thành biến “user_number”. Bạn có thể tìm hiểu thêm về cách hoạt động của lớp Máy quét bằng cách đọc hướng dẫn của chúng tôi về Máy quét Java.

Tiếp theo, chúng ta sẽ xác định một biểu thức lambda để nhân số với ba. Dán mã sau vào trên main của bạn phương pháp:

interface CalculateThree {
	double multiply_by_three(double number); 
}

Đoạn mã này xác định giao diện mà biểu thức lambda của chúng ta sẽ tham chiếu đến. Sau đó, thêm mã sau vào cuối phương thức chính trong lớp:

CalculateThree multiply = (number) -> number * 3;
double answer = multiply.multiply_by_three(user_number);

System.out.println(user_number + " multiplied by three is " + answer);

Chúng tôi đã sử dụng giao diện ReduceThree để khai báo một biến được gọi là "nhân". Điều này lưu trữ mã cho biểu thức lambda của chúng tôi. Biểu thức lambda được liên kết với multiply_by_three trong giao diện Tính toán của chúng tôi vì multiply_by_three là chức năng duy nhất trong giao diện.

Sau đó, chúng tôi đã sử dụng ký hiệu dấu chấm để gọi hàm này:

multiply.multiply_by_three(user_number);

Ký hiệu dấu chấm là nơi bạn chỉ định tên của lớp hoặc giao diện bạn muốn tham chiếu, tiếp theo là dấu chấm, sau đó là tên của phương thức mà bạn muốn truy cập. Trong trường hợp này, chúng tôi muốn truy cập vào multiply_by_three bên trong giao diện "nhân".

Mã cuối cùng của chúng tôi trông giống như sau:

import java.util.Scanner;

interface CalculateThree {
	double multiply_by_three(double number);
}

class Main {
public static void main(String args[]) {
	Scanner user_input = new Scanner(System.in);
	System.out.println("Insert a number to multiply by three: ");

	double user_number = user_input.nextDouble();

	CalculateThree multiply = (number) -> number * 3;
	double answer = multiply.multiply_by_three(user_number);

	System.out.println(user_number + " multiplied by three is " + answer);

	}
}

Hãy chạy mã của chúng tôi và chèn số 3 để nhân:

Insert a number to multiply by three:
3
3.0 multiplied by three is 9.0

Mã của chúng tôi đã nhân thành công số chúng tôi đã chèn với 3. Hành động này được thực hiện bằng cách sử dụng biểu thức lambda mà chúng tôi đã xác định.

Cách sử dụng biểu thức Lambda khối

Biểu thức Lambda có thể xuất hiện ở hai dạng:sử dụng biểu thức đơn hoặc sử dụng khối. Cú pháp lambda khối được sử dụng khi mã ở phía bên phải của mũi tên sẽ chiếm nhiều dòng.

Cú pháp khối là nơi bạn đặt mã ở phía bên phải của biểu thức lambda bằng dấu ngoặc nhọn ({}).

Hãy xem xét ví dụ này:

interface GreetUser {
	String welcome_user(String name);
}

class Main {
public static void main(String args[]) {
	GreetUser send_greeting = (name) -> {
		System.out.println("Good morning!");
		System.out.println("Welcome, " + name);
	};

	System.out.println(send_greeting.welcome_user("Brad"));
	}
}

Chúng tôi đã khai báo một biểu thức lambda có tên là send_greeting . Biểu thức này đề cập đến giao diện GreetUser mà chúng tôi đã xác định khi bắt đầu chương trình của mình. Biểu thức lambda của chúng tôi thực hiện hai hành động. Nó:

  • In "Chào buổi sáng!" vào bảng điều khiển
  • In "Chào mừng", theo sau là tên của người dùng, lên bảng điều khiển

Bởi vì điều này chiếm hai dòng mã, chúng tôi đã sử dụng cú pháp khối. Mã ở phía bên phải của biểu thức lambda của chúng tôi được đặt trong dấu ngoặc nhọn.

Kết luận

Biểu thức Lambda là các phương thức không có tên thực hiện một giao diện chức năng. Các hàm này đôi khi được gọi là các lớp hoặc hàm ẩn danh vì chúng không có tên và không tự thực thi.

Bạn có sẵn sàng cho một thử thách? Viết biểu thức lambda để kiểm tra xem một số có chẵn hay không. Nếu đúng, “X là chẵn” sẽ được in ra bảng điều khiển, trong đó X là số đang được kiểm tra; nếu không, "X là số lẻ" sẽ được in ra bảng điều khiển.

Bây giờ, bạn đã sẵn sàng để bắt đầu làm việc với các biểu thức lambda trong Java như một chuyên gia!