▲ 77 ▼ Announcing Rust 1.84.1 (blog.rust-lang.org) submitted 2 years ago by neme@lemm.ee to c/rust@programming.dev 29 comments fedilink hide all child comments
[–] ulterno@programming.dev 0 points 2 years ago (3 children) Isn't it already optional? Just put unsafe on everything? permalink fedilink source parent hideshow 3 child comments replies: [–] KillTheMule@programming.dev 13 points 2 years ago (2 children) unsafe does not disable the borrow checker. It does however give you abilities to circumvent it, namely by letting you dereference pointers, which are not subject to the borrow checker. permalink fedilink source parent hideshow 2 child comments replies: [–] ulterno@programming.dev 7 points 2 years ago OIC. I really need to start learning this language soon, or I won't be able to understand future memes and rants. permalink fedilink source parent [–] Ephera@lemmy.ml 2 points 2 years ago You can also selectively circumvent it without dipping into unsafe, by wrapping a type in an Rc or Arc ("reference-counting" and "atomic reference-counting"). This will allow you to handle an object largely like you might expect from garbage-collected languages. (Reference-counting is not able to free circular dependencies. If you need those, then use WeakRef.) Having said that, I would certainly not recommend constantly doing that for a beginner. It needs some time to get used to the way Rust works, especially if you're already experienced in other languages, but when it clicks, then you stop breaking your brain. permalink fedilink source parent
[–] KillTheMule@programming.dev 13 points 2 years ago (2 children) unsafe does not disable the borrow checker. It does however give you abilities to circumvent it, namely by letting you dereference pointers, which are not subject to the borrow checker. permalink fedilink source parent hideshow 2 child comments replies: [–] ulterno@programming.dev 7 points 2 years ago OIC. I really need to start learning this language soon, or I won't be able to understand future memes and rants. permalink fedilink source parent [–] Ephera@lemmy.ml 2 points 2 years ago You can also selectively circumvent it without dipping into unsafe, by wrapping a type in an Rc or Arc ("reference-counting" and "atomic reference-counting"). This will allow you to handle an object largely like you might expect from garbage-collected languages. (Reference-counting is not able to free circular dependencies. If you need those, then use WeakRef.) Having said that, I would certainly not recommend constantly doing that for a beginner. It needs some time to get used to the way Rust works, especially if you're already experienced in other languages, but when it clicks, then you stop breaking your brain. permalink fedilink source parent
[–] ulterno@programming.dev 7 points 2 years ago OIC. I really need to start learning this language soon, or I won't be able to understand future memes and rants. permalink fedilink source parent
[–] Ephera@lemmy.ml 2 points 2 years ago You can also selectively circumvent it without dipping into unsafe, by wrapping a type in an Rc or Arc ("reference-counting" and "atomic reference-counting"). This will allow you to handle an object largely like you might expect from garbage-collected languages. (Reference-counting is not able to free circular dependencies. If you need those, then use WeakRef.) Having said that, I would certainly not recommend constantly doing that for a beginner. It needs some time to get used to the way Rust works, especially if you're already experienced in other languages, but when it clicks, then you stop breaking your brain. permalink fedilink source parent