Dart Academy · บทเรียน

เขียน extension แรกของคุณ

เพิ่มเมธอดใหม่ให้ชนิดข้อมูลในตัว

บทเรียน 1 จาก 413 ขั้นตอน

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

เมธอดที่คุณไม่สามารถเพิ่มได้

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

ทำความรู้จักส่วนขยาย

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

extension on String {
  // new methods go here
}

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

คุณเขียน extension Name on Type แล้วเพิ่มเมธอดไว้ภายในวงเล็บปีกกา ชื่อเป็นสิ่งที่คุณตั้งเอง ส่วนชนิดคือสิ่งที่คุณกำลังขยาย

extension NumberParsing on String {
  int doubled() => int.parse(this) * 2;
}

this หมายถึงตัวรับ

ภายในส่วนขยาย this หมายถึงค่าที่คุณเรียกเมธอดด้วย เช่นเดียวกับภายในเมธอดของคลาสทั่วไป

extension on int {
  int squared() => this * this;
}

เรียกใช้เหมือนเมธอดจริง

เมื่อกำหนดแล้ว เมธอดของคุณจะให้ความรู้สึกเหมือนเป็นส่วนหนึ่งของภาษาอย่างแท้จริง คุณเรียกใช้ด้วยจุด เช่นเดียวกับเมธอดที่มากับชนิดข้อมูลนั้น

print(5.squared()); // 25

เพิ่ม Getter แทนเมธอด

ส่วนขยายสามารถเพิ่ม getter ได้เช่นกัน เพียงตัดวงเล็บออก ก็จะอ่านค่าใด ๆ ได้อย่างเรียบง่ายเหมือนคุณสมบัติ

extension on int {
  bool get isEven2 => this % 2 == 0;
}
print(4.isEven2);

ส่วนขยายเป็นแบบสแตติก

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

การตั้งชื่อเป็นทางเลือก

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

extension on double {
  String money() => "$" + toStringAsFixed(2);
}

ให้แต่ละส่วนขยายมีแนวคิดเดียว

จัดกลุ่มตัวช่วยที่เกี่ยวข้องไว้ภายใต้ ชื่อ ที่ชัดเจน ส่วนขยายขนาดเล็กที่ตั้งชื่อดีอ่านเข้าใจง่ายกว่าส่วนขยายขนาดใหญ่ที่รวมทุกอย่างไว้ด้วยกัน

extension StringCasing on String {
  String shout() => toUpperCase() + "!";
}

คุณเพิ่มฟิลด์ไม่ได้

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

เหตุผลที่สิ่งนี้ทรงพลัง

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

ตรวจสอบสั้น ๆ

มาตรวจสอบไวยากรณ์หลักของส่วนขยายกัน

สรุป: ส่วนขยายแรกของคุณ

คุณได้เรียนรู้ว่า ส่วนขยายบน Type สามารถเพิ่มเมธอดและ getter ให้ชนิดข้อมูลที่มีอยู่ ใช้ this เป็นตัวรับ และถูกเลือกใช้แบบสแตติก 🚀

เริ่มต้นได้ฟรี

เรียนรู้ Dart ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “เขียน extension แรกของคุณ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “เขียน extension แรกของคุณ”

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

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

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

บทเรียน “เขียน extension แรกของคุณ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เขียน extension แรกของคุณ
  2. Extensions กับ generics
  3. สมาชิก extension แบบ static และความขัดแย้ง
  4. ชนิด extension สำหรับตัวห่อที่ไม่มีต้นทุนเพิ่ม
← กลับไปที่ Dart Academy