this post was submitted on 22 Oct 2023
18 points (95.0% liked)
Rust
6042 readers
6 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
A reference &T holds a pointer, ie. the memory adress to the actual content of T
So, in the example x doesn't hold the value 42, it holds the memory adress to the memory there the integer value 42 is stored. So, to access the value, you need to dereference the reference. Which is why you need to use *x when you assign the value.
And the Copy question.It is not that s reference has to implement Copy. A reference IS Copy, by the simple fact that it is a primitive value on the stack.
I think where I was getting hung up here as I was still thinking of the value of the reference rather than the reference itself. That's why I brought up Strings, it didn't make sense that String would automatically implement Copy since they go on the heap. But I see now we're talking about the pointer reference TO that value.
Thanks!