Dividing Lists with SubList

เรียนรู้เพิ่มเติมจากหลักสูตรเต็มรูปแบบ
Dart and Flutter: The Complete Developer's Guide
Everything you need to know for building mobile apps with Flutter and Dart, including RxDart and Animations!
วิดีโอออนดีมานด์ความยาว 31:11:50 • อัพเดทเมื่อ กันยายน 2025
Build beautiful multi-screen apps with Flutter
Understand the different approaches for loading and maintaining data in Flutter apps
Create and publish open source projects using Dart
Learn how to build offline-enabled apps with incredibly efficient data loading
Comprehend the best method for reading the incredible amount of Flutter documentation
Store long-term data on a user's physical device using SQLite
Master streams and understand reactive programming to create Flutter apps
ไทย [อัตโนมัติ]
ในส่วนสุดท้ายเรามีการสนทนาอย่างลึกซึ้งเกี่ยวกับวิธีการ subclassed นี้ที่นี่ใช้งานได้จริง ดังนั้นเมื่อกล่าวว่าจะส่งคืนรายการใหม่ที่มีวัตถุจากดัชนีเริ่มต้นไปยังดัชนีสิ้นสุด ตอนนี้เราเข้าใจแล้วว่ามันไม่ได้เป็นการคัดลอกวัตถุเหล่านั้น มันไม่ได้ลบออกจากรายการเดิม เราเพิ่งคัดลอกการอ้างอิงไปยังวัตถุเหล่านั้นและพวกเขาไม่เคยถูกลบออกจากรายการเดิม ด้วยเหตุนี้ในใจเรากำลังจะพลิกกลับไปที่แผ่นศิลปวัตถุและเราจะใช้วิธีการจัดการของเรา เราจะหาวิธีแก้ไขสำรับพื้นฐานดั้งเดิมของเราเมื่อเราสร้าง hant นี้ เพราะอย่างที่เราเพิ่งพูดถึงเมื่อไม่นานมานี้ถ้าใช้การ์ดบางใบออกมาจากสำรับของฉันอย่างเช่นพูดว่าการ์ด 0 1 และ 2 ฉันไม่ควรเข้าถึงการ์ดเหล่านั้นเมื่อฉันจัดการกับคุณ แค่นั้นแหละ. พวกเขาไม่ได้อยู่ในมือไพ่ของฉันหรือไพ่ของฉันอีกต่อไป ฉันไม่สามารถเข้าถึงพวกเขาได้อีกต่อไป ตกลง. ดังนั้นฉันต้องพลิกกลับไปที่แผ่นศิลปวัตถุจะไปหาชั้นดาดฟ้าของฉัน นี่มันอยู่ตรงนี้ ฉันจะลงไปที่ชั้นล่างของคลาสนั้นอีกครั้ง และในขณะที่ยังอยู่ในร่างกายของคลาสฉันจะสร้างวิธีการใหม่ที่เรียกว่าดีล ตอนนี้เมื่อใดก็ตามที่เราเรียกฟังก์ชั่นดีลนี้ที่นี่เราอาจต้องรู้ว่ามีการ์ดกี่ใบที่เราพยายามจะแจกให้กับผู้ใช้ ตัวอย่างเช่นถ้าเรากำลังเล่นเกมโป๊กเกอร์ฉันอาจต้องจัดการไพ่ห้าใบให้คุณ แต่ถ้าเรากำลังเล่นเกมกระบองฉันจะจัดการกับคุณเช่นเดียวกับไพ่สองใบหรืออะไรก็ตามที่ควรจะเป็น ดังนั้นเพื่อเป็นข้อโต้แย้งของฟังก์ชั่นดีลนี้ฉันจะคาดหวังว่าจะได้รับเลขจำนวนเต็มที่สะท้อนขนาดมือ ดังนั้นมันจึงดูดี ทีนี้สิ่งต่อไปที่เราจะทำคือเราจะจดรายการบัตรของเราและเราจะเรียกวิธีย่อยนั้นว่า จริงๆแล้วเราอยู่ในการเรียกวิธีการย่อยในสองครั้ง ใช่ให้ฉันแสดงแผนภาพอย่างรวดเร็วว่ามันจะทำงานอย่างไร เราจะเรียกวิธีการเช่าช่วงนี้ สองครั้งในครั้งแรกที่คุณและฉันจะดึงไพ่จำนวนหนึ่งที่จะถูกส่งกลับไปยังผู้ที่เรียกว่าฟังก์ชั่นนี้แล้วเราจะเรียกวิธีการเช่าช่วงเป็นครั้งที่สองและในการโทรครั้งที่สองจำไว้ว่าเรา ไม่ได้ลบการ์ดเหล่านี้จริงๆ ขอคัดลอกวางกลับขึ้นที่นี่เพื่อสะท้อนความเป็นจริง ดังนั้นในการโทรครั้งแรกที่เผยแพร่เราจะสร้างรายการที่สองนี้ที่นี่ซึ่งมือประเภทนี้ที่เราจะกลับมา จากนั้นภายในหนึ่งวินาทีเพื่อโทรไปยังรายการย่อยเราจะดึงไพ่ที่เหลือทั้งหมดออก เช่นสามสี่หรือห้าตรงนี้จะให้รายการใหม่กับเรา เราจะทำรายการนั้นและกำหนดมันไว้เหนือรายการบัตรปัจจุบัน ดังนั้นในคำอื่น ๆ เราจะเรียกรายการย่อยเป็นครั้งที่สอง เรากำลังจะได้รับรายการใหม่ที่นี่ เราจะทิ้งรายชื่อทั้งหมดนี้ไปแล้วเราจะบอกว่ารายชื่อการ์ดใหม่ที่เป็นของชั้นเด็คเราเหลือแค่สามสี่และห้า ดังนั้นโดยพื้นฐานแล้วเราจะเรียก sublease สองครั้งและใช้ประโยชน์จากสองส่วนที่แตกต่างกันอันหนึ่งจะไปหาใครก็ตามที่เรียกว่าวิธีการตกลง ในชั้นเรียนของเราฉันคิดว่าเมื่อเราเขียนรหัสสำหรับสิ่งนี้มันจะทำให้รู้สึกมากขึ้น ลงมาที่นี่ภายในข้อตกลงฉันหมายถึงการสร้างไพ่ของฉันก่อนหรือชนิดของเด็คหรือรายการไพ่ที่เราจะกลับมาจากฟังก์ชั่นนี้ ดังนั้นเราจะบันทึก var hand เป็นรายการย่อย Cards Dotts และฉันจะเอาไพ่ทั้งหมดจากศูนย์ถึงขนาดมือ ชอบมาก ๆ ดังนั้นที่บรรทัดของรหัสนี้ตรงนี้เรากำลังสร้างรายการใหม่และเรากำลังคัดลอกข้อมูลอ้างอิงไปยังรายการใหม่นั้นและเรากำหนดสิ่งนั้นให้มือ หลังจากนั้นฉันจะเรียกรายการย่อยบัตรอีกครั้งและเราจะเอาไพ่ทั้งหมดที่เหลืออยู่ในมือนี้ เริ่มต้นที่ขนาดมือ ดังนั้นสังเกตว่าเราอยู่ที่นี่ได้อย่างไรตั้งแต่ขนาดเริ่มต้นจนถึงขนาดมือ จากนั้นในคลาสย่อยตรงนี้เราจะนำทุกอย่างที่เหลืออยู่ในเด็ค ดังนั้นเราจะบอกขนาดมือในตอนนี้เพื่อไปยังจุดสิ้นสุดของรายการที่นี่จะได้รับไพ่ที่เหลือทั้งหมด หากคุณย้อนกลับไปดูเอกสารที่นี่คุณจะสังเกตเห็นว่ามีคนคลิกฉันโดยบังเอิญ ฉันขอโทษ. เริ่มกันเลย ย้อนกลับไปตกลงรอบอาร์กิวเมนต์ที่สองนั้นเราไปรอบ ๆ อาร์กิวเมนต์ที่สองที่เรามีวงเล็บปีกกาอยู่ ดังนั้นเมื่อใดก็ตามที่คุณเห็นวงเล็บปีกกาสี่เหลี่ยมจัตุรัสรอบรายการอาร์กิวเมนต์ซึ่งหมายความว่ามันเป็นอาร์กิวเมนต์ตัวเลือก ดังนั้นในคำอื่น ๆ ถ้าเราไม่ผ่านการโต้แย้งท้ายที่นี่รายการย่อยจะไปโดยอัตโนมัติไปยังจุดสิ้นสุดสุดของรายการและนำทุกอย่างที่เหลืออยู่ภายใน ดังนั้นสิ่งที่เราต้องทำคือส่งผ่านรายการย่อยเป็นอาร์กิวเมนต์แรกตรงนี้แล้วเราไม่ต้องผ่านในอาร์กิวเมนต์ที่สอง ดังนั้นรหัสบรรทัดนี้ตรงนี้จะนำไพ่ที่เหลือทั้งหมดในรายการบัตรของเราแล้วเราจะนำรายการใหม่ที่ได้รับคืนมาและเราจะเขียนทับรายการบัตรปัจจุบันของเราด้วยอันนั้น . จากนั้นในที่สุดเราก็จะกลับมือที่เราสร้างขึ้น และนั่นมันสวยมาก ตกลง. งั้นลองทดสอบกันก่อนแล้วกลับไปที่วิธีหลัก ฉันจะทำการเปลี่ยนแปลงเล็กน้อยภายในวิธีหลักของเราที่นี่ ลองกลับไปที่ที่เรามีดาดฟ้ากัน ฉันจะเริ่มต้นด้วยการพิมพ์สำรับ ดังนั้นเราจะเริ่มและบอกว่าเรามีอะไรที่นี่ จากนั้นฉันจะโทรไปที่ print on deck dot deal และฉันจะพยายามแจกไพ่ให้ห้าใบ ดังนั้นตอนนี้เราจะเห็นคำสั่งการพิมพ์สองคำ เราจะเห็นเด็คดั้งเดิมที่ไม่มีการแก้ไขอย่างสมบูรณ์ จากนั้นเราจะเห็นไพ่เพียงห้าใบหรือรายการไพ่ห้าใบด้วยตัวของมันเองและมันจะพิมพ์สำรับอีกครั้ง ดังนั้นเด็คที่สองตรงนี้ควรมีไพ่น้อยกว่าห้าใบในนั้นเพราะเราหยิบไพ่ห้าใบและเราแจกมันด้วย ฉันไม่รู้จักใครที่เล่นเกมของเราอย่างคงที่ เอาล่ะทีนี้ลองให้ภาพนี้วิ่งเร็วขึ้นที่นี่ ให้เวลากับมันก่อนมันติดอยู่ตลอดเวลา ลองทำอีกครั้ง เราไปที่นั่นดีกว่ามาก ตกลง. ตรงนี้คุณจะเห็นว่านี่คือรายการไพ่ดั้งเดิมของเรา นั่นคือไพ่ทั้งหมดที่เราสร้างภายในเด็คเรา จากนั้นตรงนี้ฉันเห็นไพ่หนึ่งสองสามสี่และห้าใบ พวกเขาถูกอุ้มไว้ในมือของเรา แล้วเราเห็นตรงนี้ว่าจะไม่นับพวกมันทั้งหมดอย่างชัดเจน แต่เห็นได้ชัดว่ามีไพ่อยู่ในนั้นน้อยลงและตรงนั้นเพื่อให้เราทำการเปรียบเทียบได้อย่างรวดเร็วที่นี่ โปรดสังเกตว่าในรายการเดิมเรามีไพ่ห้าใบ ตอนนี้เพชรเหล่านั้นอยู่ในมือแล้วและพวกเขาไม่ได้อยู่ในรายชื่อไพ่ที่เป็นของชั้นดาดฟ้าจริงของเราอีกต่อไป ดังนั้นฉันรู้ว่าสิ่งที่เช่าช่วงนี้เป็นบ้าเล็กน้อย แต่จำไว้ว่าเป้าหมายโดยรวมของสิ่งที่เราพยายามสื่อสารที่นี่คือเมื่อใดก็ตามที่เราสร้างรายการบันทึกรายการนั้นไม่ได้เก็บบันทึกของเรา ระเบียนที่มีอยู่ภายในหน่วยความจำและรายการเพียงทำการอ้างอิงไปยังระเบียน ตกลงดังนั้นตอนนี้เราได้รับการจัดการที่ดีขึ้นว่าให้ดำเนินการต่อในส่วนถัดไป