I feel like this is a bit unfair. Rust takes most of its names from C++ or OCaml.
You just are exposed to different languages than what was used as the base.
You just are exposed to different languages than what was used as the base.
The comment from fauigerzigerk sums it up well. You just have to know via experience, a great teacher, or very attentive learning that vec![1,2,3] is going to pop all of its values in a "print elements" loop while [1,2,3] will retain each value.
Other languages have similar behavior, but it's often more obvious e.g. Python with the .next() keyword.