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

enum ที่เพิ่มเติมด้วยฟิลด์และเมธอด

แนบข้อมูลและพฤติกรรมเข้ากับแต่ละค่า

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

ชนิดแจกแจงเก็บข้อมูลได้

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

การเพิ่มฟิลด์

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

enum Planet {
  earth(9.8), mars(3.7);
  final double gravity;
}

ต้องมีตัวสร้างแบบ const

ชนิดแจกแจงเสริมความสามารถต้องมีตัวสร้างแบบ const เพื่อกำหนดค่าฟิลด์ ตัวสร้างนี้ทำงานหนึ่งครั้งต่อสมาชิกแต่ละตัวขณะสร้างค่า

const Planet(this.gravity);

สมาชิกส่งอาร์กิวเมนต์ให้ตัวสร้าง

ค่าภายในวงเล็บคืออาร์กิวเมนต์ของตัวสร้าง earth(9.8) หมายความว่า earth ถูกสร้างขึ้นโดยกำหนดแรงโน้มถ่วงเป็น 9.8

earth(9.8), mars(3.7);

การอ่านฟิลด์ของสมาชิก

เข้าถึงข้อมูลผ่านสมาชิกได้เช่นเดียวกับคุณสมบัติทั่วไป สมาชิกแต่ละตัวจะคืนค่าที่เก็บไว้ของตนเอง

print(Planet.earth.gravity); // 9.8

หลายฟิลด์

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

enum Coin { penny(1, "1c"), dime(10, "10c"); }

การเพิ่มเมธอด

ชนิดแจกแจงเสริมความสามารถสามารถกำหนดเมธอดได้เช่นกัน เมธอดสามารถใช้ฟิลด์ของสมาชิก ทำให้แต่ละค่ามีพฤติกรรมจริง

double weightOf(double mass) => mass * gravity;

การเรียกใช้เมธอดของชนิดแจกแจง

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

print(Planet.mars.weightOf(70)); // 259.0

การเพิ่มตัวเข้าถึง

ตัวเข้าถึงที่คำนวณค่าได้ก็ใช้งานได้เช่นกัน โดยคืนค่าที่คำนวณจากฟิลด์โดยไม่ต้องเก็บข้อมูลใหม่

bool get isStrong => gravity > 5;

ยังคงเป็นชนิดแจกแจง

แม้จะมีความสามารถเพิ่มขึ้น ชนิดแจกแจงเสริมความสามารถก็ยังคงมี values, index และ name คุณไม่สูญเสียสิ่งใดจากการเพิ่มฟิลด์และเมธอด

print(Planet.values.length); // 2

เมื่อใดควรเสริมความสามารถ

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

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

ชนิดแจกแจงเสริมความสามารถที่มีฟิลด์ต้องมีสิ่งใดอยู่เสมอ

สรุปทบทวน: ชนิดแจกแจงเสริมความสามารถ

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

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

บทเรียน “enum ที่เพิ่มเติมด้วยฟิลด์และเมธอด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “enum ที่เพิ่มเติมด้วยฟิลด์และเมธอด”

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

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

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

บทเรียน “enum ที่เพิ่มเติมด้วยฟิลด์และเมธอด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ประกาศและใช้ enum แบบพื้นฐาน
  2. ค่า enum, index และ name
  3. enum ที่เพิ่มเติมด้วยฟิลด์และเมธอด
  4. ใช้ switch กับ enum ให้ครบทุกกรณี
← กลับไปที่ Dart Academy