Ad space (banner)
Lesson 9 / 20

Ownership, the basics

This lesson covers ownership, the idea that defines Rust more than any other.

In Rust every value has exactly one owning variable. Assigning the owner to another variable moves ownership there, and the original variable can no longer be used. This is how Rust prevents memory-management bugs.

The sample code shows that assigning a String variable s1 to s2 would move ownership to s2 and make s1 unusable — and sidesteps that by duplicating the value with clone().

A common early stumble is precisely this behaviour: assignment makes the original variable unusable. Few other languages work this way, so it feels strange at first, but it is the heart of how Rust manages memory safely.

In professional work, the ownership rules are what make memory leaks and double frees unlikely even without a garbage collector.

๐Ÿ“– Reference code
โœ๏ธ Your code
Type your code, then press "Run"

๐Ÿงช This site can't compile or run Rust directly, so it checks on the spot whether what you typed matches the reference code (scoring happens entirely in your browser โ€” nothing is sent anywhere).

Ad space (banner)
Ad space (in-article)