วิธีใช้ 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 อย่างผู้เชี่ยวชาญแล้ว!