After Chs 5 and 6 (see the reading club post here), we get a capstone quiz that covers ownership along with struts and enums.
So, lets do the quiz together! If you’ve done it already, revisiting might still be very instructive! I certainly thought these questions were useful “revision”.
I’ll post a comment for each question with the answer, along with my own personal notes (and quotes from The Book if helpful), behind spoiler tags.
Feel free to try to answer in a comment before checking (if you dare). But the main point is to understand the point the question is making, so share any confusions/difficulties too, and of course any corrections of my comments/notes!.


Q4: Method and Ownership
/// Gets the string out of an option if it exists, /// returning a default otherwise fn get_or_default(arg: &Option<String>) -> String { if arg.is_none() { return String::new(); } let s = arg.unwrap(); s.clone() }Answer
2arginarg.unwrap()argis a reference.unwrap()has signatureunwrap(self) -> T: it takes ownership!unwrapcannot take ownership (argdoesn’t have ownership to move/give).