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