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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการ Cascade (..)
- Cascade ที่หยุดเมื่อพบ null (?..)
- การกระจายและการกระจายที่รู้จัก null
- if และ for ในคอลเลกชัน