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?