0Pricing
Dart Academy · บทเรียน

ฟังก์ชันนิรนามและคลอเชอร์

เก็บตัวแปรไว้ในฟังก์ชันแบบแทรกในบรรทัด

ฟังก์ชันนิรนามและคลอเชอร์ เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

ฟังก์ชันที่ไม่มีชื่อ

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

รูปแบบพื้นฐาน

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

var greet = (String n) {
  print('Hi ' + n);
};

การเรียกฟังก์ชันที่จัดเก็บไว้

เมื่อจัดเก็บไว้แล้ว คุณสามารถเรียกฟังก์ชันผ่านตัวแปรได้เหมือนฟังก์ชันที่มีชื่อ โดยใช้วงเล็บ

greet('Ada');

ส่งฟังก์ชันแบบแทรกโดยตรง

โดยส่วนใหญ่ คุณจะส่งฟังก์ชันไม่ระบุชื่อเข้าไปในเมธอดโดยตรง ในที่นี้ forEach จะเรียกฟังก์ชันนั้นกับทุกรายการ

[1, 2, 3].forEach((n) {
  print(n * 2);
});

ฟังก์ชันลูกศรแบบไม่ระบุชื่อ

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

var doubled = [1, 2, 3].map((n) => n * 2);

คลอเชอร์คืออะไร

คลอเชอร์คือฟังก์ชันที่จดจำตัวแปรจากจุดที่ฟังก์ชันถูกสร้างขึ้น แม้ขอบเขตภายนอกนั้นจะสิ้นสุดลงแล้ว

การจับตัวแปรไว้

ฟังก์ชันด้านล่างจะจับstepไว้ และใช้ค่านั้นต่อไปทุกครั้งที่คุณเรียกฟังก์ชันที่ส่งกลับมาในภายหลัง

Function adder(int step) {
  return (int x) => x + step;
}

คลอเชอร์แต่ละตัวเป็นอิสระจากกัน

เรียกโรงงานสองครั้ง แล้วคลอเชอร์ที่ส่งกลับมาแต่ละตัวจะเก็บค่าที่จับไว้แยกจากกัน ทั้งสองตัวจะไม่รบกวนกัน

var add5 = adder(5);
var add10 = adder(10);

คลอเชอร์เก็บสถานะไว้

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

int count = 0;
var tick = () => ++count;

เหตุผลที่เรื่องนี้สำคัญ

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

ทำให้มีขนาดเล็ก

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

ตรวจสอบอย่างรวดเร็ว

อะไรทำให้ฟังก์ชันเป็นคลอเชอร์

สรุปทบทวน

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

คำถามที่พบบ่อย

บทเรียน “ฟังก์ชันนิรนามและคลอเชอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ฟังก์ชันนิรนามและคลอเชอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชันนิรนามและคลอเชอร์”

เก็บตัวแปรไว้ในฟังก์ชันแบบแทรกในบรรทัด คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ฟังก์ชันนิรนามและคลอเชอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม

ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ไวยากรณ์ลูกศรสำหรับฟังก์ชันบรรทัดเดียว
  2. ฟังก์ชันนิรนามและคลอเชอร์
  3. ชนิดข้อมูลที่รับค่า null ได้และเครื่องหมายคำถาม
  4. ตัวดำเนินการที่รู้จัก null: ?., ?? และ !
← กลับไปที่ Dart Academy