ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย
ดูว่าค่าถูกทำซ้ำหรือย้ายที่อย่างไร
ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
วิธีส่งค่าต่อมีสองแบบ
เมื่อค่าเคลื่อนที่ไปมาภายในโปรแกรม Mojo สามารถ ทำสำเนาหรือ ย้ายค่าได้ การรู้ว่าเกิดอะไรขึ้นช่วยให้คุณประเมินต้นทุนได้ 🔁
สำเนาคืออะไร
สำเนาจะสร้างค่าใหม่ที่เป็นอิสระจากเดิม ทั้งค่าต้นฉบับและสำเนายังคงอยู่ โดยแต่ละค่ามีข้อมูลของตนเอง
var a = MyType(1)
var b = a # copy: a still validการย้ายคืออะไร
การย้ายจะเปลี่ยนตำแหน่งของค่าแทนการทำซ้ำ ข้อมูลจะถูกส่งมอบ ดังนั้นจึงไม่ใช้ค่าต้นทางต่อไป
เหตุใดการย้ายจึงประหยัดกว่า
การทำสำเนาอาจทำให้ข้อมูลบนฮีปถูกทำซ้ำ แต่ การย้ายเพียงโอนความเป็นเจ้าของข้อมูลที่มีอยู่แล้ว สำหรับค่าขนาดใหญ่ วิธีนี้ช่วยลดงานได้จริง
การกำหนดค่ามักทำสำเนา
การกำหนดค่าแบบธรรมดาใน Mojo จะใช้ สำเนาเป็นค่าเริ่มต้น ดังนั้นแต่ละตัวแปรจึงเป็นเจ้าของค่าของตนเอง ทำให้ความหมายของค่าปลอดภัยและคาดเดาได้
การเริ่มต้นการย้าย
คุณขอให้ย้ายค่าได้ด้วยตัวดำเนินการโอน ซึ่งเป็นสัญลักษณ์ แครอต สัญลักษณ์นี้บอก Mojo ให้ส่งมอบค่าแทนการทำซ้ำ
var b = a^ # move a into bต้นทางถูกใช้จนหมด
หลังการย้าย ตัวแปรต้นทางจะถูก ใช้จนหมด Mojo จะไม่อนุญาตให้คุณอ่านตัวแปรนั้นอีก เพื่อป้องกันการใช้ข้อมูลเก่าหรือไม่ถูกต้อง
สำเนาทำให้ทั้งสองค่ายังคงอยู่
ในทางตรงกันข้าม หลังการทำสำเนา ตัวแปรทั้งสองยังใช้งานได้เต็มที่ แต่ละตัวเป็น อิสระจากกัน ดังนั้นการแก้ไขตัวหนึ่งจะไม่กระทบอีกตัวหนึ่ง
คอมไพเลอร์ตัดสินใจอย่างชาญฉลาด
Mojo ยังสามารถเปลี่ยนการทำสำเนาเป็นการย้ายโดยอัตโนมัติเมื่อไม่จำเป็นต้องใช้ค่าต้นทางแล้ว ซึ่งเป็นการปรับประสิทธิภาพที่ช่วยลด งานโดยไม่รบกวนการทำงาน
ตระหนักถึงต้นทุนย่อมคุ้มค่า
การคิดถึงความแตกต่างระหว่างการทำสำเนากับการย้ายช่วยให้คุณหลีกเลี่ยงการทำสำเนาบัฟเฟอร์ขนาดใหญ่โดยไม่ตั้งใจ นี่คือก้าวแรกสู่โค้ด Mojo ที่ มีประสิทธิภาพ
คุณยังควบคุมได้
Mojo มีค่าเริ่มต้นที่ปลอดภัย แต่ให้คุณเลือกใช้ การย้ายเมื่อต้องการความเร็ว คุณเลือกพฤติกรรมที่เหมาะกับแต่ละสถานการณ์ได้
ตรวจสอบสั้น ๆ
มาทดสอบการทำสำเนาเปรียบเทียบกับการย้ายกัน
สรุป
สำเนาคือค่าซ้ำที่เป็นอิสระ ส่วน การย้ายคือการโอนความเป็นเจ้าของอย่างประหยัดและใช้ค่าต้นทางจนหมด ตอนนี้คุณคาดเดาผลลัพธ์ของทั้งสองแบบได้แล้ว 🎯
คำถามที่พบบ่อย
บทเรียน “ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย”
ดูว่าค่าถูกทำซ้ำหรือย้ายที่อย่างไร คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม
ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย
- เมธอด __copyinit__
- เมธอด __moveinit__
- การทำลายและ __del__