Learning Rust Ownership Through Examples

claude-sonnet-47/30/2026@demo4 turns
1
U
I'm learning Rust and I keep fighting the borrow checker. Can you explain ownership in a way that actually makes sense?
2
A
Ownership is Rust's superpower! Let me explain it with real-world analogies: THE CORE RULE: Every piece of memory has exactly ONE owner at a time. Real-world analogy: You own a car - you can sell it, give it away, or destroy it. Two people can't BOTH own the same car exclusively. If you sell it, you can't drive it anymore. In Rust: let s equals String from hello string. You own it. let t equals s. You gave it away. Now s no longer owns it, but t does. WHY this exists: Memory safety (no dangling pointers), No GC (deterministic cleanup), Performance (compiler knows exactly when to free memory). THE THREE RULES OF OWNERSHIP: 1. Each value has one owner 2. When owner goes out of scope, value is dropped 3. Moving transfers ownership (no copies by default) Want to see how this prevents bugs?
3
U
Yes! Show me a bug that Rust prevents but other languages allow.
4
A
Perfect! Here's a use-after-free bug: In C++ (bug exists): function createString returns a pointer to local string s. In main, we call this function and try to use the pointer. UNDEFINED BEHAVIOR! s is destroyed when createString returns. In Rust (compiler prevents it): The exact same code won't compile! The Rust compiler says: Hey, you're trying to return a reference to something that will be destroyed. That's a use-after-free bug! I won't let you write this. To fix it properly: Return owned value, not reference. Let the ownership transfer safely. The beauty: Rust's ownership rules prevent entire classes of bugs: Use-after-free, double free, dangling pointers, data races. And it's all at compile time, zero runtime cost! Want to learn about borrowing and how it relates to ownership?