Logo th.boatexistence.com

เมื่อไรจะใช้ไม่มีเจ้าของ vs อ่อนแอ?

สารบัญ:

เมื่อไรจะใช้ไม่มีเจ้าของ vs อ่อนแอ?
เมื่อไรจะใช้ไม่มีเจ้าของ vs อ่อนแอ?
Anonim

ความแตกต่างหลักระหว่างอ่อนแอและไม่ได้เป็นเจ้าของคือ อ่อนแอเป็นตัวเลือกในขณะที่ไม่ได้เป็นเจ้าของนั้นไม่ใช่ตัวเลือก โดยประกาศว่าอ่อนแอ คุณจะจัดการกับกรณีที่มันอาจจะเป็นศูนย์ภายใน ปิดในบางจุด หากคุณพยายามเข้าถึงตัวแปรที่ไม่ได้เป็นเจ้าของซึ่งเป็นศูนย์ จะทำให้ทั้งโปรแกรมขัดข้อง

คุณควรใช้ unowned หรืออ่อนแอเมื่อใด

ใช้การอ้างอิงที่อ่อนแอ เมื่อใดก็ตามที่มันถูกต้องสำหรับ ที่การอ้างอิงถึงกลายเป็นศูนย์ในบางช่วงตลอดอายุการใช้งาน ในทางกลับกัน ใช้การอ้างอิงที่ไม่ได้เป็นเจ้าของเมื่อคุณรู้ว่าการอ้างอิงจะไม่เป็นศูนย์เมื่อมีการตั้งค่าระหว่างการเริ่มต้น

อ่อนแอและไม่มีเจ้าของแตกต่างกันอย่างไร

ความแตกต่างอย่างแรกที่คุณต้องรู้คือการอ้างอิงที่ไม่มีเจ้าของมักจะมีค่าเสมอ… เมื่อเป็นเช่นนั้น การอ้างอิงจะถูกตั้งค่าเป็น nil เนื่องจากการอ้างอิงที่อ่อนแอสามารถตั้งค่าเป็น nil ได้ จึงประกาศเป็นตัวเลือกเสมอ นั่นคือข้อแตกต่างที่สองระหว่างการอ้างอิงที่อ่อนแอและการอ้างอิงที่ไม่มีเจ้าของ

การอ้างอิงที่อ่อนแอกับการอ้างอิงที่ไม่มีเจ้าของแตกต่างกันอย่างไร

การอ้างอิงที่อ่อนแอและไม่ได้เป็นเจ้าของจะไม่ส่งผลกระทบต่อจำนวนการอ้างอิงของวัตถุ แต่ การอ้างอิงที่อ่อนแอจะเป็นทางเลือกเสมอ เช่น อาจเป็นศูนย์ได้ ในขณะที่การอ้างอิงที่ไม่มีเจ้าของจะไม่มีวันเป็นศูนย์ ดังนั้นจะไม่เป็นตัวเลือกใดๆ

อะไรแข็ง อ่อนแอ และไม่มีเจ้าของ

ข้อแตกต่างที่สำคัญระหว่างการอ้างอิงที่รัดกุมและการอ้างอิงที่อ่อนแอหรือไม่มีเจ้าของคือการอ้างอิงที่รัดกุมจะป้องกันไม่ให้อินสแตนซ์ของคลาสที่ชี้ว่าถูกจัดสรรคืน นั่นเป็นสิ่งสำคัญมากที่จะเข้าใจและจดจำ … กล่าวอีกนัยหนึ่ง การอ้างอิงที่อ่อนแอและไม่มีเจ้าของ ไม่สามารถป้องกันอินสแตนซ์ของคลาสไม่ให้ถูกจัดสรรคืนได้