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

แพตเทิร์น switch และเงื่อนไขกำกับ

จับคู่รูปร่างข้อมูลและเพิ่มเงื่อนไข when

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

switch พบกับรูปแบบ

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

การจับคู่รูปร่างของเรกคอร์ด

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

switch (point) {
  case (0, 0): print('origin');
}

ผูกค่าระหว่างการจับคู่

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

switch (p) {
  case (var x, var y): print(x + y);
}

กรณีไวลด์การ์ด

กรณีที่ใช้ขีดล่างจะจับคู่กับทุกค่า ทำงานคล้ายค่าเริ่มต้น โดยรับค่าที่กรณีก่อนหน้านี้ยังไม่ได้จัดการ

switch (n) {
  case 1: print('one');
  case _: print('other');
}

Guard คืออะไร

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

case (var x, var y) when x == y:
  print('diagonal');

Guard ช่วยปรับการจับคู่ให้ละเอียดขึ้น

ใช้ guard เมื่อรูปร่างเพียงอย่างเดียวยังไม่เพียงพอ เพราะช่วยให้คุณแบ่งรูปแบบหนึ่งออกเป็นผลลัพธ์ที่ละเอียดขึ้นตามค่าภายใน

ลำดับเป็นตัวตัดสิน

ระบบจะตรวจสอบกรณีจากบนลงล่าง กรณีแรกที่จับคู่ได้จะเป็นกรณีที่ชนะ ดังนั้นควรวางรูปแบบที่เฉพาะเจาะจงที่สุดไว้ก่อนรูปแบบที่กว้างกว่า

switch ในรูปแบบนิพจน์

นิพจน์ switch จะคืนค่า กรณีต่าง ๆ ใช้ลูกศร และ switch ทั้งหมดจะประเมินผลออกมาเป็นผลลัพธ์เดียว

var label = switch (n) {
  1 => 'one',
  _ => 'many',
};

ไม่ต้องใช้ break

กรณีที่ใช้รูปแบบจะไม่ไหลต่อไปยังกรณีถัดไป ดังนั้นคุณจึงไม่ต้องเขียน break แต่ละกรณีแยกจากกันอย่างชัดเจนและเป็นระเบียบ

รูปแบบตรรกะ OR

เชื่อมรูปแบบด้วย || เพื่อจับคู่หลายรูปร่างภายในกรณีเดียว จัดการค่าที่เกี่ยวข้องกันร่วมกันได้โดยไม่ต้องเขียนเนื้อความซ้ำ

case 1 || 2 || 3:
  print('small');

ครอบคลุมและปลอดภัย

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

ตรวจสอบความเข้าใจ

คีย์เวิร์ดใดใช้เพิ่มเงื่อนไขให้กับรูปแบบของกรณีใน switch

ทบทวน: รูปแบบและ Guard

ทำได้แล้ว! 🎯 switch สามารถจับคู่กับรูปแบบ เก็บฟิลด์ไว้ ปรับการจับคู่ให้ละเอียดขึ้นด้วย guard when และคืนค่าในรูปแบบนิพจน์ได้

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

บทเรียน “แพตเทิร์น switch และเงื่อนไขกำกับ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แพตเทิร์น switch และเงื่อนไขกำกับ”

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

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

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

บทเรียน “แพตเทิร์น switch และเงื่อนไขกำกับ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เรคคอร์ด: ทูเพิลน้ำหนักเบา
  2. ฟิลด์เรคคอร์ดตามตำแหน่งและแบบมีชื่อ
  3. การแยกโครงสร้างด้วยแพตเทิร์น
  4. แพตเทิร์น switch และเงื่อนไขกำกับ
← กลับไปที่ Dart Academy