การรับความเป็นเจ้าของด้วย owned
โอนค่าเข้าไปในฟังก์ชัน
การรับความเป็นเจ้าของด้วย owned เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
วิธีส่งค่าแบบที่สาม
คุณได้เรียนรู้การยืมเพื่ออ่านและ inout เพื่อแก้ไขแล้ว รูปแบบที่สามช่วยให้ฟังก์ชัน รับช่วงต่อค่าทั้งหมด 📦
ทำความรู้จัก owned
อาร์กิวเมนต์แบบ owned จะโอนความเป็นเจ้าของเข้าสู่ฟังก์ชัน จากนั้นฟังก์ชันจะถือค่านั้นเป็นของตนเองเพื่อใช้งานหรือจัดเก็บ
การระบุพารามิเตอร์
เขียน owned ไว้หน้าชื่อพารามิเตอร์ ภายในฟังก์ชันจะควบคุมค่าได้อย่างเต็มที่ ทั้งแก้ไข จัดเก็บ หรือ consume ค่าได้
fn consume(owned name: String):
print(name)ฟังก์ชันกลายเป็นเจ้าของ
เมื่อใช้ owned อายุการใช้งานของค่าจะย้ายเข้ามาอยู่ในฟังก์ชัน เมื่อฟังก์ชันจบการทำงาน ฟังก์ชันจะรับผิดชอบ ทำลายค่านั้น
เหตุใดจึงต้องรับความเป็นเจ้าของ
ใช้ owned เมื่อฟังก์ชันจำเป็นต้องเก็บค่าไว้ เช่น จัดเก็บในโครงสร้างหรือชุดข้อมูล แทนที่จะเพียง อ่านค่าในช่วงสั้น ๆ
Owned แก้ไขค่าได้เช่นกัน
เนื่องจากฟังก์ชันเป็นเจ้าของค่า ฟังก์ชันจึงสามารถ เปลี่ยนแปลงค่าได้อย่างอิสระ ไม่มีผู้เรียกใช้ที่ต้องคอยปกป้อง เพราะค่าดังกล่าวเป็นของฟังก์ชันแล้ว
ค่าถูกส่งมาอย่างไร
โดยค่าเริ่มต้น Mojo จะมอบ สำเนาใหม่ให้พารามิเตอร์แบบ owned ดังนั้นค่าต้นฉบับของผู้เรียกใช้จะยังคงเดิม เว้นแต่คุณจะขอให้ย้ายค่า
หลีกเลี่ยงการทำสำเนา
หากคุณไม่จำเป็นต้องใช้ค่าต้นฉบับแล้ว คุณสามารถส่งมอบค่าแทนการทำสำเนาได้ การ โอนนี้คือหัวข้อของบทเรียนถัดไป
เจตนาที่ชัดเจน
การเลือก owned บอกผู้อ่านว่าฟังก์ชันนี้จะ เก็บค่าไว้ ลายเซ็นของฟังก์ชันจึงบันทึกเส้นทางของข้อมูลให้เห็นได้ทันที
รูปแบบทั้งสาม
ตอนนี้คุณรู้จักครบทั้งสามแบบแล้ว: borrowed ใช้อ่าน inout แก้ไขโดยตรง และ owned รับช่วงค่ามา แต่ละแบบสื่อเจตนาที่ชัดเจน
เลือกตามความรับผิดชอบ
ถามว่าหลังการเรียกใช้ ใครควรรับผิดชอบค่า หากคำตอบคือฟังก์ชัน ให้เลือกใช้ owned
ตรวจสอบสั้น ๆ
มาดูกันว่า owned มีความหมายอย่างไรสำหรับฟังก์ชัน
สรุป
owned โอนความเป็นเจ้าของค่าให้ฟังก์ชัน ซึ่งสามารถเก็บ เปลี่ยนแปลง หรือทำลายค่าได้ ใช้เมื่อฟังก์ชันต้อง เป็นเจ้าของข้อมูล 🎯
คำถามที่พบบ่อย
บทเรียน “การรับความเป็นเจ้าของด้วย owned” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การรับความเป็นเจ้าของด้วย owned” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การรับความเป็นเจ้าของด้วย owned”
โอนค่าเข้าไปในฟังก์ชัน คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การรับความเป็นเจ้าของด้วย owned” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม
ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การยืมอาร์กิวเมนต์แบบอ่านอย่างเดียว
- การเปลี่ยนค่าในตำแหน่งเดิมด้วย inout
- การรับความเป็นเจ้าของด้วย owned
- ตัวดำเนินการโอนค่า