การแยกโครงสร้างด้วยแพตเทิร์น
แยกเรคคอร์ด ลิสต์ และแมปออกเป็นส่วน ๆ
การแยกโครงสร้างด้วยแพตเทิร์น เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
การแยกโครงสร้างคืออะไร
Destructuring หมายถึงการดึงค่าออกจากโครงสร้างมาใส่ในตัวแปรภายในการดำเนินการครั้งเดียว เปรียบได้กับการแกะสิ่งของออกจากกล่องแล้วติดป้ายกำกับให้แต่ละชิ้นพร้อมกัน 🎁
รูปแบบอธิบายรูปร่าง
รูปแบบ คือแม่แบบที่ใช้ตรวจสอบรูปร่างของค่า หากค่าตรงตามรูปแบบ Dart จะผูกส่วนต่าง ๆ ของค่าเข้ากับชื่อที่คุณเขียนไว้
แยกโครงสร้างเรกคอร์ด
วางรูปแบบเรกคอร์ดไว้ทางซ้ายของ = แล้ว Dart จะเติมค่าลงในตัวแปรแต่ละตัวจากตำแหน่งที่ตรงกัน มีสองค่าและสองชื่อได้ทันที
var (a, b) = (1, 2);
print(a);รูปแบบเรกคอร์ดแบบมีชื่อ
สำหรับฟิลด์ที่มีชื่อ ให้จับคู่ด้วย ชื่อ ภายในรูปแบบ ชื่อฟิลด์ทางซ้ายจะบอก Dart ว่าต้องดึงค่าใดมา
var (x: a, y: b) = (x: 3, y: 7);
print(b);การสลับค่าที่ง่ายดาย
Destructuring มีประโยชน์อย่างมากสำหรับการสลับค่าของตัวแปรสองตัว สร้างเรกคอร์ด แยกค่าออกมา แล้วค่าจะสลับตำแหน่งกันภายในบรรทัดเดียวที่อ่านง่าย
(a, b) = (b, a);
print(a);แยกโครงสร้างลิสต์
รูปแบบลิสต์ใช้วงเล็บเหลี่ยม แต่ละช่องจะผูกกับสมาชิกหนึ่งรายการ ทำให้ตำแหน่งต่าง ๆ สอดคล้องกับตัวแปรของคุณ
var [first, second] = [10, 20];
print(first);สมาชิกส่วนที่เหลือ
ภายในรูปแบบลิสต์ ... จะเก็บสมาชิกที่เหลือทั้งหมดไว้ คุณสามารถดึงส่วนต้นออกมา แล้วปล่อยให้ส่วนที่เหลือรวบรวมเป็นส่วนท้าย
var [head, ...rest] = [1, 2, 3, 4];
print(rest);แยกโครงสร้างแมป
รูปแบบแมปจะอ่านค่าจากคีย์ ระบุคีย์ที่คุณสนใจ แล้วผูกแต่ละคีย์เข้ากับตัวแปร
var {'id': id} = {'id': 42, 'name': 'A'};
print(id);รูปแบบไวลด์การ์ด
ใช้ขีดล่างเป็นไวลด์การ์ดเมื่อคุณไม่สนใจช่องนั้น ไวลด์การ์ดจะจับคู่กับค่าใดก็ได้และไม่ผูกค่าเข้ากับตัวแปร
var (_, important) = ('skip', 99);
print(important);การแยกโครงสร้างใน for-in
คุณสามารถแยกโครงสร้างได้โดยตรงภายในลูป for-in แยกแต่ละเรกคอร์ดออกมาระหว่างวนซ้ำได้โดยไม่ต้องระบุดัชนีด้วยตนเอง
for (var (k, v) in [(1, 'a')]) {
print(v);
}โค้ดที่กระชับและอ่านง่ายขึ้น
รูปแบบช่วยแทนที่การเข้าถึง .field หลายชั้นด้วยบรรทัดเดียวที่อ่านง่าย เจตนาของโค้ดจึงเห็นได้ชัดเจนในพริบตา
ตรวจสอบความเข้าใจ
ขีดล่างทำหน้าที่อะไรในรูปแบบ var (_, x) = ('a', 1)?
ทบทวน: การแยกโครงสร้าง
ทำได้ดีมาก! 🙌 รูปแบบช่วยให้คุณแยกโครงสร้างเรกคอร์ด ลิสต์ และแมปออกมาเป็นตัวแปรที่มีชื่อ พร้อมใช้ไวลด์การ์ดและสมาชิกส่วนที่เหลือเพื่อให้จับคู่ได้อย่างพอดี
คำถามที่พบบ่อย
บทเรียน “การแยกโครงสร้างด้วยแพตเทิร์น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแยกโครงสร้างด้วยแพตเทิร์น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแยกโครงสร้างด้วยแพตเทิร์น”
แยกเรคคอร์ด ลิสต์ และแมปออกเป็นส่วน ๆ คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การแยกโครงสร้างด้วยแพตเทิร์น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เรคคอร์ด: ทูเพิลน้ำหนักเบา
- ฟิลด์เรคคอร์ดตามตำแหน่งและแบบมีชื่อ
- การแยกโครงสร้างด้วยแพตเทิร์น
- แพตเทิร์น switch และเงื่อนไขกำกับ