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

ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย

ดูว่าค่าถูกทำซ้ำหรือย้ายที่อย่างไร

ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ซีแมนติกส์ของการคัดลอกเทียบกับการย้าย
  2. เมธอด __copyinit__
  3. เมธอด __moveinit__
  4. การทำลายและ __del__
← กลับไปที่ Mojo Academy