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

if และ for ในคอลเลกชัน

สร้างลิสต์ตามเงื่อนไขและภายในลูป

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

ตรรกะภายในลิเทอรัล

บางครั้งเนื้อหาของลิสต์ขึ้นอยู่กับเงื่อนไข Dart อนุญาตให้ใส่ if ไว้ภายในลิเทอรัลของคอลเลกชันได้โดยตรง จึงสร้างคอลเลกชันทั้งหมดไว้ในที่เดียว

if ของคอลเลกชัน

if ของคอลเลกชันจะเพิ่มสมาชิกเมื่อเงื่อนไขเป็นจริงเท่านั้น หากไม่มีเงื่อนไขใดเป็นจริง ตำแหน่งนั้นก็จะไม่เพิ่มสิ่งใด

var nav = ['Home', if (loggedIn) 'Profile'];

if พร้อม else

คุณสามารถเพิ่ม else เพื่อเลือกระหว่างสมาชิกสองรายการ สมาชิกหนึ่งในสองรายการจะถูกใส่ลงในคอลเลกชันเสมอ และจะไม่ใส่ทั้งคู่

var tags = [if (vip) 'Gold' else 'Standard'];

ไม่ต้องใช้วงเล็บปีกกา

ต่างจาก if ระดับคำสั่ง if ของคอลเลกชันไม่ต้องใช้วงเล็บปีกกาหรืออัฒภาค เพราะมันสร้างสมาชิกหนึ่งรายการ ไม่ได้เรียกใช้บล็อกคำสั่ง

for ของคอลเลกชัน

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

var doubled = [for (var n in nums) n * 2];

คล้าย map แต่แทรกไว้ภายใน

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

ผสม if และ for

คุณสามารถ รวมทั้งสองอย่างเข้าด้วยกันได้: วนซ้ำด้วย for แล้วกรองด้วย if ทั้งคู่ช่วยสร้างลิสต์ที่มีรูปแบบตามต้องการภายในลิเทอรัลเดียว

var evens = [for (var n in nums) if (n.isEven) n];

ใช้ได้มากกว่าลิสต์

if และ for ของคอลเลกชันยังใช้ได้ในลิเทอรัลของเซตและแผนที่ด้วย ไวยากรณ์ที่อ่านง่ายแบบเดียวกันนี้ใช้กำหนดรูปแบบให้คอลเลกชันทั้งสามชนิดได้

var m = {for (var u in users) u.id: u.name};

ใช้ร่วมกับการกระจาย

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

var x = [...base, if (extra) 'plus'];

เหตุใดจึงดีกว่าการสร้างภายหลัง

การสร้างคอลเลกชันตั้งแต่ต้นช่วยให้โค้ดมีลักษณะ เชิงประกาศ คุณไม่ต้องสร้างลิสต์ว่างแล้วเพิ่มข้อมูลลงไปด้วยคำสั่งแยกหลายรายการ

เหมาะสำหรับลิสต์ส่วนติดต่อผู้ใช้

แนวทางนี้โดดเด่นใน Flutter ซึ่งลิสต์ children มักแสดงวิดเจ็ตตามเงื่อนไขหรือข้อมูล ลิเทอรัลจึงยังคงสะอาดและอ่านง่าย 🧩

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

if ของคอลเลกชันทำอะไรเมื่อเงื่อนไขเป็นเท็จและไม่มี else

สรุปทบทวน

if ของคอลเลกชันจะเพิ่มสมาชิกตามเงื่อนไข ส่วน for ของคอลเลกชันจะสร้างสมาชิกในลูป ทั้งหมดทำงานภายในลิเทอรัลของลิสต์ เซต และแผนที่ได้โดยตรง 🎯

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

บทเรียน “if และ for ในคอลเลกชัน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “if และ for ในคอลเลกชัน”

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

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

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

บทเรียน “if และ for ในคอลเลกชัน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตัวดำเนินการ Cascade (..)
  2. Cascade ที่หยุดเมื่อพบ null (?..)
  3. การกระจายและการกระจายที่รู้จัก null
  4. if และ for ในคอลเลกชัน
← กลับไปที่ Dart Academy