Rustのunsafe
型安全性の保守的な部分を一部緩めるイメージ
バグはないんだから、型検査緩めてくれよ!ってやる
だからunsafeがあるのが一概に悪いというわけではない
ただ、コンパイラのサポートを一部得られないことを意味する
"Rust 研究者" として個人的に「Rust で困ったらガンガン unsafe を使えばいい」主義を応援しています
Rust の軽量な静的検査のもとで無条件に安全なものだけが safe で、unsafe はそれ以外の全てなので、「unsafe は即危険」ではなくて、多くの場合に何らかの条件のもとで安全性が担保されます
Rust の単純な静的検査でカバーしきれないのはむしろ自然なことなので、臆せず unsafe を使えばいいと思います
関数はデフォルトで unsafe にしておいて、「この所有権型で無条件で安全になる」と確信できる関数だけ safe にしていく方針を取ると、気が楽になると思います
仮に unsafe を使いまくっていたとしても、多くの場所で安全性が担保されるおかげで本当に危険な場所だけ注意すれば良くなるし、Rust を使う価値が十分にあると思います
爽快に unsafe を使いこなして、Rust をガンガン書いていきましょう