ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ
กำหนดค่า final และนำคอนสตรักเตอร์กลับมาใช้ใหม่
ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
การกำหนดค่าฟิลด์แบบค่าคงที่
ฟิลด์ค่าคงที่ต้องถูกกำหนดค่าก่อนที่ส่วนเนื้อหาของตัวสร้างจะทำงาน รายการกำหนดค่าเริ่มต้นจึงเป็นตำแหน่งที่เหมาะสมในการกำหนดค่าเพียงครั้งเดียวให้ฟิลด์
class Circle {
final double area;
Circle(double r) : area = 3.14 * r * r;
}รูปแบบไวยากรณ์ของรายการกำหนดค่าเริ่มต้น
หลังรายการพารามิเตอร์ ให้เพิ่มเครื่องหมายโคลอนและการกำหนดค่าที่คั่นด้วยจุลภาค รายการกำหนดค่าเริ่มต้นนี้จะทำงานก่อนส่วนเนื้อหาของตัวสร้าง
Point(int x, int y) : x = x, y = y;ทำงานก่อนส่วนเนื้อหา
การกำหนดค่าในรายการจะเกิดขึ้นก่อน จากนั้นส่วนเนื้อหาจึงทำงาน ดังนั้นฟิลด์ที่กำหนดในรายการจะพร้อมใช้งานภายในส่วนเนื้อหาแล้ว
class Box {
final int n;
Box(int v) : n = v {
print(n); // available
}
}การคำนวณค่าที่ได้มา
ใช้รายการเพื่อคำนวณค่าฟิลด์จากพารามิเตอร์ เช่น ยอดรวมหรือป้ายกำกับ ก่อนที่ใครจะเข้าถึงออบเจ็กต์ได้
class Rect {
final int area;
Rect(int w, int h) : area = w * h;
}ตัวกำหนดค่าเริ่มต้นหลายรายการ
คั่นการกำหนดค่าหลายรายการด้วยจุลภาค แต่ละรายการจะกำหนดค่าฟิลด์ที่แตกต่างกันภายในรายการกำหนดค่าเริ่มต้นเดียวกัน
Point(int a, int b) : x = a, y = b;assert ในรายการกำหนดค่าเริ่มต้น
คุณสามารถใส่ assert ในรายการเพื่อป้องกันอินพุตระหว่างการพัฒนา และตรวจจับค่าที่ไม่ถูกต้องก่อนที่ออบเจ็กต์จะถูกสร้าง
Circle(double r) : assert(r > 0), area = 3.14 * r * r;การส่งต่อระหว่างตัวสร้าง
ตัวสร้างหนึ่งสามารถส่งต่อไปยังอีกตัวหนึ่งโดยใช้ this หลังเครื่องหมายโคลอน ทำให้การตั้งค่าที่ใช้ร่วมกันอยู่ในตำแหน่งเดียว
class Point {
int x, y;
Point(this.x, this.y);
Point.zero() : this(0, 0);
}เหตุผลที่ควรส่งต่อ
การส่งต่อช่วยหลีกเลี่ยงการเขียนการกำหนดค่าฟิลด์ซ้ำ ตัวสร้างที่มีชื่อเพียงเรียกใช้ตัวหลัก ทำให้ตรรกะของคุณเป็นไปตามหลักไม่ทำซ้ำ
Point.origin() : this(0, 0);ส่วนเนื้อหาของตัวสร้างที่ส่งต่อจะว่างเปล่า
ตัวสร้างที่ส่งต่อจะไม่มีส่วนเนื้อหา แต่จะส่งต่อไปยังเป้าหมายด้วย this(...) ซึ่งเป็นผู้ทำงานจริงทั้งหมด
class User {
String name;
User(this.name);
User.anon() : this("anon");
}ลำดับการทำงาน
จำลำดับนี้ไว้: รายการกำหนดค่าเริ่มต้นและการส่งต่อจะทำงานก่อน จากนั้นจึงเป็นส่วนเนื้อหา กำหนดฟิลด์ค่าคงที่ในรายการ และทำงานเพิ่มเติมในส่วนเนื้อหา
รายการกำหนดค่าเริ่มต้นเทียบกับส่วนเนื้อหา
ใช้รายการสำหรับกำหนดค่าฟิลด์ โดยเฉพาะฟิลด์ค่าคงที่ และใช้ส่วนเนื้อหาสำหรับตรรกะ เช่น การพิมพ์ การตรวจสอบที่มากกว่า assert หรือการเรียกใช้เมธอด
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ตรวจสอบความเข้าใจเกี่ยวกับรายการกำหนดค่าเริ่มต้น
ทบทวน: การกำหนดค่าเริ่มต้นและการส่งต่อ
ตอนนี้คุณสามารถใช้รายการกำหนดค่าเริ่มต้นเพื่อกำหนดค่าฟิลด์ค่าคงที่และคำนวณค่า ใช้ assert เพื่อป้องกันค่า และส่งต่อตัวสร้างหนึ่งไปยังอีกตัวหนึ่งด้วย this 🔀
คำถามที่พบบ่อย
บทเรียน “ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ”
กำหนดค่า final และนำคอนสตรักเตอร์กลับมาใช้ใหม่ คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์
- คอนสตรักเตอร์แบบมีชื่อเพื่อสื่อเจตนาอย่างชัดเจน
- ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ
- คอนสตรักเตอร์แบบ factory และ const