เขียน extension แรกของคุณ
เพิ่มเมธอดใหม่ให้ชนิดข้อมูลในตัว
เขียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เขียน extension แรกของคุณ
- Extensions กับ generics
- สมาชิก extension แบบ static และความขัดแย้ง
- ชนิด extension สำหรับตัวห่อที่ไม่มีต้นทุนเพิ่ม