Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

นิพจน์แลมบ์ดาใน Java:A Guide

วิธีใช้ Lambda Expressions ใน Java

คุณเคยคิดบ้างไหมว่าวิธีการบางอย่างอาจพอดีกับบรรทัดเดียว ถ้าไม่ใช่สำหรับไวยากรณ์ Java แบบละเอียดที่คุณต้องใช้ในการประกาศวิธีการ ไม่ใช่แค่คุณคนเดียว.

วิธีการเป็นคุณลักษณะที่มีประโยชน์อย่างเหลือเชื่อในการเขียนโปรแกรม

เมธอดคือกลุ่มของโค้ดที่ทำบางอย่างเฉพาะในโปรแกรมของคุณ มีการใช้เพราะเมื่อคุณกำหนดวิธีการ คุณสามารถเรียกมันได้หลายครั้ง ซึ่งช่วยลดความซ้ำซ้อนในโค้ดของคุณ ซึ่งจะทำให้ง่ายต่อการดูแลโค้ดของคุณ

ในคู่มือนี้ เราจะพูดถึงนิพจน์แลมบ์ดาในภาษาจาวา นี่เป็นวิธีพิเศษประเภทหนึ่งที่คุณสามารถใช้เรียกว่า นิพจน์แลมบ์ดา ซึ่งใช้อินเทอร์เฟซที่ใช้งานได้ เราจะพูดถึงวิธีการทำงานและเหตุผลที่ใช้

ส่วนต่อประสานการทำงานคืออะไร

ก่อนที่เราจะพูดถึงนิพจน์แลมบ์ดา คุณต้องเข้าใจอินเทอร์เฟซที่ใช้งานได้ก่อน เหล่านี้เป็นอินเทอร์เฟซที่มีเพียงหนึ่งวิธีนามธรรม วิธีการหนึ่งที่เป็นนามธรรมภายในอินเทอร์เฟซที่ใช้งานได้ระบุวัตถุประสงค์ของอินเทอร์เฟซ

ลองพิจารณาตัวอย่างนี้:

interface CalculateThree {
	double multiply_by_three(String day);
}

เราได้สร้างอินเทอร์เฟซที่เรียกว่า CalculateThree อินเทอร์เฟซนี้มีเพียงหนึ่งเมธอด multiply_by_three ซึ่งหมายความว่าเป็นอินเทอร์เฟซที่ใช้งานได้

นิพจน์ Java Lambda คืออะไร

นิพจน์แลมบ์ดาเป็นเมธอดที่ไม่มีชื่อ มันถูกใช้เพื่อปรับใช้วิธีการที่กำหนดไว้ภายในอินเทอร์เฟซที่ใช้งานได้ บางครั้งนิพจน์แลมบ์ดาเรียกว่าเมธอดนิรนามเนื่องจากไม่มีชื่อ

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

นิพจน์ Lambda ใช้ตัวดำเนินการลูกศร ซึ่งแบ่งออกเป็นสองส่วน:

(parameter list) -> lambda body

ด้านซ้ายมีพารามิเตอร์ที่นิพจน์ใช้ ด้านขวามีโค้ดที่จะเรียกใช้เมื่อดำเนินการนิพจน์แลมบ์ดา ฟังก์ชันแลมบ์ดาสามารถรับพารามิเตอร์เดียวหรือหลายพารามิเตอร์ได้

วิธีใช้นิพจน์แลมบ์ดา

มาสร้างโปรแกรมที่ใช้ตัวเลขที่ผู้ใช้ใส่เข้าไปแล้วคูณด้วยสาม เราจะเริ่มต้นด้วยการเขียนรหัสที่รับตัวเลขจากผู้ใช้:

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();
	}
}

เมื่อเรารันโค้ดนี้ ผู้ใช้ของเราจะได้รับแจ้งให้ใส่ตัวเลขเพื่อคูณ โปรแกรมของเราจะอ่านตัวเลขนั้นลงในตัวแปร “user_number” คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของคลาส Scanner โดยการอ่านบทช่วยสอนของเราบน Java Scanner

ต่อไป เราจะกำหนดนิพจน์แลมบ์ดาเพื่อคูณตัวเลขด้วยสาม วางโค้ดต่อไปนี้ด้านบน main . ของคุณ วิธีการ:

interface CalculateThree {
	double multiply_by_three(double number); 
}

รหัสนี้กำหนดอินเทอร์เฟซที่นิพจน์แลมบ์ดาของเราจะอ้างอิง จากนั้นเพิ่มรหัสต่อไปนี้ที่ด้านล่างของวิธีการหลักในชั้นเรียน:

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

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

เราใช้อินเทอร์เฟซ CalculateThree เพื่อประกาศตัวแปรที่เรียกว่า "คูณ" เก็บโค้ดสำหรับนิพจน์แลมบ์ดาของเรา นิพจน์แลมบ์ดาเชื่อมโยงกับ multiply_by_three ในอินเทอร์เฟซ CalculateThree ของเราเพราะ multiply_by_three เป็นฟังก์ชันเดียวในอินเทอร์เฟซ

จากนั้นเราใช้เครื่องหมายจุดเพื่อเรียกฟังก์ชันนี้:

multiply.multiply_by_three(user_number);

เครื่องหมายจุดเป็นที่ที่คุณระบุชื่อของคลาสหรืออินเทอร์เฟซที่คุณต้องการอ้างอิง ตามด้วยจุด ตามด้วยชื่อของเมธอดที่คุณต้องการเข้าถึง ในกรณีนี้ เราต้องการเข้าถึง multiply_by_three วิธีการภายในอินเทอร์เฟซ "คูณ"

รหัสสุดท้ายของเรามีลักษณะดังนี้:

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);

	}
}

มารันโค้ดของเราแล้วใส่เลข 3 เพื่อคูณกัน:

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

รหัสของเราคูณจำนวนที่เราแทรกด้วย 3 ได้สำเร็จ การดำเนินการนี้ดำเนินการโดยใช้นิพจน์แลมบ์ดาที่เรากำหนดไว้

วิธีใช้นิพจน์บล็อคแลมบ์ดา

นิพจน์แลมบ์ดาสามารถปรากฏในสองรูปแบบ:ใช้นิพจน์เดียว หรือใช้บล็อก ไวยากรณ์บล็อกแลมบ์ดาจะใช้เมื่อโค้ดทางด้านขวามือของลูกศรใช้หลายบรรทัด

ไวยากรณ์บล็อกเป็นที่ที่คุณล้อมรอบโค้ดทางด้านขวามือของนิพจน์แลมบ์ดาด้วยเครื่องหมายปีกกา ({})

ลองพิจารณาตัวอย่างนี้:

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"));
	}
}

เราได้ประกาศนิพจน์แลมบ์ดาชื่อ send_greeting . นิพจน์นี้อ้างถึงอินเทอร์เฟซ GreetUser ที่เรากำหนดไว้ตอนเริ่มต้นโปรแกรมของเรา นิพจน์แลมบ์ดาของเราดำเนินการสองอย่าง มัน:

  • พิมพ์ “อรุณสวัสดิ์!” ไปที่คอนโซล
  • พิมพ์ “ยินดีต้อนรับ ” ตามด้วยชื่อผู้ใช้ ไปที่คอนโซล

เนื่องจากต้องใช้โค้ดสองบรรทัด เราจึงใช้รูปแบบการบล็อก รหัสทางด้านขวามือของนิพจน์แลมบ์ดาของเราอยู่ในวงเล็บปีกกา

บทสรุป

นิพจน์แลมบ์ดาเป็นเมธอดที่ไม่มีชื่อซึ่งใช้อินเทอร์เฟซที่ใช้งานได้ ฟังก์ชันเหล่านี้บางครั้งเรียกว่าคลาสหรือฟังก์ชันที่ไม่ระบุตัวตน เนื่องจากไม่มีชื่อและไม่ได้ดำเนินการเอง

คุณพร้อมสำหรับความท้าทายหรือไม่? เขียนนิพจน์แลมบ์ดาที่ตรวจสอบว่าตัวเลขเป็นคู่หรือไม่ ถ้าใช่ ควรพิมพ์ “X เป็นเลขคู่” ไปที่คอนโซล โดยที่ X คือตัวเลขที่กำลังทดสอบ มิฉะนั้น ควรพิมพ์ "X เป็นเลขคี่" ไปที่คอนโซล

ตอนนี้คุณพร้อมที่จะเริ่มทำงานกับนิพจน์แลมบ์ดาใน Java อย่างผู้เชี่ยวชาญแล้ว!