‫ยินดีต้อนรับกลับ.
‫มาต่อกันที่รายการ
‫จนถึงตอนนี้ วงเล็บเหลี่ยมเหล่านี้ เราเคยเห็นมาก่อนแล้วใช่ไหม
‫เราเห็นพวกเขาเมื่อทำงานกับสตริง
‫และเช่นเดียวกับสตริง รายการนั้นค่อนข้างคล้ายกันที่เราสามารถใช้การแบ่งส่วนรายการได้
‫หากคุณจำการสไลซ์สตริงได้ เรามีบางอย่างเช่นสวัสดี และเราสามารถกำหนดให้กับสตริงได้ สมมติว่าสตริงตัวแปรและเราสามารถทำสตริงแล้วสไลซ์ได้
‫เลยทำอะไรแบบนี้
‫ที่ที่เราเริ่มต้น หยุด และก้าวผ่านไป
‫เพื่อให้เราเริ่มต้นที่ดัชนีศูนย์และสิ้นสุดที่ดัชนีสอง
‫แล้วก็ไปทีละคน
‫การแบ่งส่วนรายการก็มีให้เราเช่นกัน
‫มาทำให้การ์ดใบนี้ใหญ่ขึ้นหน่อย
‫และคุณสามารถทำให้สิ่งต่าง ๆ สะอาดขึ้นได้ด้วยการจัดรูปแบบด้วยวิธีนี้
‫เอาล่ะ เราควรเพิ่มอะไรในรถเข็นของเราดี?
‫เราจะเพิ่มของเล่นด้วย
‫แล้วรู้อะไรมั้ย?
‫ตอนนี้ Amazon ทำร้านขายของชำ
‫มาเติมองุ่นแสนอร่อยกันดีกว่า
‫สุดยอด.
‫ตอนนี้ สมมติว่าฉันต้องการรับสินค้าทุกชิ้นในรถเข็น
‫เราก็แค่ทำสิ่งนี้
‫และเรามีรายการทั้งหมดของเรา
‫แต่ลองใช้การแบ่งส่วนรายการ
‫สมมติว่าฉันต้องการคว้าจากรายการแรกไปยังรายการที่สอง
‫ถ้าฉันคลิกเรียกใช้
‫ฉันได้รับสมุดบันทึกและแว่นกันแดด
‫บางทีฉันอาจจะอยากไปให้ถึงที่สุด แต่ข้ามทุกวินาที
‫ฉันได้รับสมุดบันทึกและของเล่น
‫เราเริ่มเป็นศูนย์
‫เราก้าวข้ามไปที่ของเล่น และเราก้าวข้าม และทำเสร็จแล้ว
‫สุดยอด.
‫และนี่คือสิ่งที่เราได้เห็นแล้วเมื่อพูดกับเครื่องสาย
‫แต่ที่นี่เป็นที่ที่น่าสนใจ
‫จำได้ไหมว่าฉันบอกว่าสตริงไม่เปลี่ยนรูป?
‫นั่นหมายความว่าเราไม่สามารถเปลี่ยนแปลงได้
‫ถูกต้อง.
‫และเราพูดถึงเรื่องนี้เมื่อเรามีสตริงเช่นสวัสดี
‫ฉันไม่สามารถทำ Greet zero เท่ากับ Z ได้
‫ฉันจะได้รับข้อผิดพลาดที่นี่
‫ฉันได้รับวัตถุ str ไม่สนับสนุนการกำหนดรายการ
‫มันไม่เปลี่ยนรูป
‫แต่สิ่งที่น่าสนใจที่มีรายการคือสามารถเปลี่ยนแปลงได้
‫เพื่อที่ว่าถ้าฉันเปลี่ยนรถเข็น Amazon ของฉัน
‫และบอกว่า คุณรู้อะไรไหม ฉันไม่ต้องการสมุดบันทึกจริงๆ
‫ผมจะหยิบของชิ้นแรก นั่นก็คือ โน้ตบุ๊ก
‫และแทนที่จะเป็นสมุดบันทึกฉันต้องการอะไร
‫เราจะบอกว่าเราต้องการแล็ปท็อปเครื่องใหม่
‫เป็นการอัปเกรดครั้งใหญ่
‫เมื่อฉันพิมพ์รถเข็น Amazon นี้
‫ดูนั่นสิ
‫ฉันสามารถเปลี่ยนรายการนี้ได้
‫และมันไม่ได้ทำให้ฉันมีข้อผิดพลาดในแง่นั้น
‫รายการเปลี่ยนแปลงได้
‫เราเพียงแค่เปลี่ยนชั้นวางหนังสือหน่วยความจำของโน้ตบุ๊กคอมพิวเตอร์ของเรา และฉันพูดว่า เฮ้ เปลี่ยนเป็นแล็ปท็อป
‫และพวกเขาให้เราทำอย่างนั้น
‫มันเยี่ยมมาก
‫แต่มาลองอะไรที่นี่กัน
‫จะเกิดอะไรขึ้นหากฉันสร้างงานพิมพ์อื่นที่นี่ และในรถเข็นของ Amazon ฉันจะใช้การแบ่งส่วนรายการเพื่อสมมติว่าฉันต้องการรายการจากดัชนีหนึ่งไปจนถึงดัชนีสาม
‫เรียกใช้สิ่งนี้และดูว่าเกิดอะไรขึ้น
‫ลองเดาสิ
‫นั่นคือสิ่งที่คุณคาดหวัง?
‫มาดูรหัสนี้กัน
‫พอถึงบรรทัดที่สิบ เราก็หยิบตะกร้าของ Amazon ที่อัพเดทเป็นโน้ตบุ๊ก แล้วหยิบขึ้นมาอันที่หนึ่ง
‫สองสาม.
‫นั่นคือแว่นกันแดด
‫สองของเล่น
‫ดังนั้นศูนย์หนึ่งสอง
‫แล้วเราก็หยุดที่ตีสาม
‫เพียงเพื่อให้เข้าใจง่ายขึ้น
‫เริ่มจากศูนย์ตรงนี้กันก่อน
‫เพื่อให้เราเห็นว่าแล็ปท็อปมีการเปลี่ยนแปลง
‫จากนั้นในบรรทัดที่สอง ในบรรทัดที่ 11 เราพิมพ์รถเข็นของ Amazon
‫แต่เดี๋ยวก่อน
‫รายการนี้ไม่เปลี่ยนแปลง
‫และนั่นเป็นเพราะว่าด้วยการแบ่งส่วนรายการ เรากำลังสร้างรายการใหม่
‫สำเนาใหม่ของรายการนี้
‫ตรงนี้ เรากำลังสร้างรายการใหม่ทั้งหมด เพื่อที่ผมจะกำหนดมันให้กับตัวแปร รถเข็นใหม่
‫จะเป็นรถเข็นของ Amazon
‫และลองทำแบบเดียวกันที่นี่
‫และการ์ดใหม่ก็เป็นรายการใหม่ทั้งหมดด้วยตัวมันเอง
‫ฉันสามารถเปลี่ยนรถเข็นใหม่ได้
‫สมมุติว่าศูนย์เท่ากับหมากฝรั่ง
‫และถ้าฉันพิมพ์สิ่งนี้
‫คุณเห็นว่า?
‫ฉันมีรายการใหม่แยกกันสองรายการ แต่รายการสามารถเปลี่ยนแปลงได้เนื่องจากฉันสามารถเปลี่ยนแปลงอะไรก็ได้ที่อยู่ในดัชนีเมื่อใดก็ได้ตามต้องการ
‫และทุกครั้งที่เราแยกส่วนรายการ เราจะสร้างสำเนาใหม่ของรายการนั้น
‫แต่ฉันมีคำถามยากสำหรับคุณที่นี่
‫จะเกิดอะไรขึ้นถ้าฉันทำสิ่งนี้
‫ถ้าฉันเรียกใช้สิ่งนี้
‫อืม.
‫คุณเห็นไหม
‫แทนที่จะแบ่งรายชื่อของฉัน ฉันแค่บอกว่าบัตรใหม่จะเท่ากับรถเข็นของ Amazon
‫และฉันเปลี่ยนดัชนีรถเข็นใหม่เป็นศูนย์ให้เท่ากับหมากฝรั่ง
‫แต่ตอนนี้รถเข็น Amazon ของฉันก็ได้รับการแก้ไขเช่นกัน
‫ทำไมถึงเป็นอย่างนั้น?
‫และนี่เป็นคำถามที่ยุ่งยากเล็กน้อยที่คุณอาจพบในการสัมภาษณ์
‫เหตุผลก็คือว่า วิธีที่ฉันทำเท่ากับตอนนี้ หมายความว่า เฮ้ รถเข็นใหม่กำลังจะเท่ากับรถเข็นของอเมซอน
‫และรถเข็นของ Amazon เท่ากับอะไร?
‫รถเข็นของ Amazon ชี้ไปที่ใดที่หนึ่งในหน่วยความจำในเครื่องของเราว่า เฮ้ นี่คือสิ่งที่รถเข็นของ
‫Amazon เป็น
‫เพราะที่นี่เราไม่ได้คัดลอกรายการ
‫แต่เราแค่พูดว่า เฮ้ มูลค่าของบัตรใหม่คือสิ่งที่อยู่ในความทรงจำของรถเข็นของ Amazon
‫ตอนนี้เมื่อเราปรับเปลี่ยนรถเข็นใหม่เป็นเพียงการเปลี่ยนรถเข็นของ Amazon ไปตลอดทางจากที่นี่
‫นี่จึงเป็นแนวคิดที่สำคัญ
‫หากคุณต้องการ สมมติว่าคัดลอกรายการ แล้วคุณทำสิ่งนี้
‫ที่คุณคัดลอกรายการทั้งหมด
‫และนี่คือสิ่งที่คุณจะเห็นได้มากมายในฐานรหัส
‫แต่บรรทัดนี้บอกว่า เฮ้ ฉันต้องการสร้างสำเนา
‫ใช้การแบ่งส่วนรายการเพื่อคัดลอกรถเข็น Amazon นี้ และมันจะเท่ากับรถเข็นใหม่ ดังนั้นตอนนี้ถ้าฉันเรียกใช้สิ่งนี้
‫คุณจะเห็นว่ารถเข็นของ Amazon เดิมยังคงเหมือนเดิม แต่ตอนนี้รถเข็นใหม่มีบางอย่างที่แตกต่างออกไป
‫นี่คือ gotcha ด่วนที่คุณต้องทำความคุ้นเคย
‫แต่มันเป็นแนวคิดที่สำคัญ แนวคิดของการคัดลอกกับการแก้ไขรายการ
‫และเป็นสิ่งที่เราจะสำรวจเพิ่มเติมอีกเล็กน้อยในวิดีโอคู่หน้า
‫พักผ่อนก่อนนะครับ แล้วเจอกันใหม่ตอนหน้าครับ
‫ลาก่อน.