mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

これ、もちろんいつでも乱用することが推奨されているわけではないから、いつ再束縛が正当化されるのかを掴んだほうが早くて、たとえば「強引なメソッドチェーンを避ける」とか「所有している値から参照だけほしい」とかで使うのが主です

たとえば

let hoge: String = fn_that_returns_String();
let hoge = hoge.trim();

とやると、コンパイラが見る挙動としては

let _hoge1: String = fn_that_returns_String();
let hoge: &str = _hoge1.trim();

となるので、一時変数の String を殺さないまま読み取り専用の参照だけ持てる

あと他にありがちな典型例は、

fn load_data<P: AsRef<Path>>(path: P) -> std:🇮🇴:Result<Data> {
let path = path.as_ref();

...
}

とか。「意味は変えず、元ネタのオブジェクトも殺さないまま、 &Path に型だけ変えたい」みたいなことはよくある (Into で受けるときも同様)

Into だと

fn create_config<P: Into<PathBuf>>(dir: P) -> std:: io:: Result<bool> {
let path = path.into(); // path: PathBuf になる

...
}

みたいなやつ