#質問
rustで以下のような関数があるとします
rust
1use std::fs::File; 2use std::io 3pub async fn get_requwest(url: &String) { 4 let filename = url.split("/").last().unwrap(); 5 let response = reqwest::get(url).await.unwrap(); 6 let bytes = response.bytes().await.unwrap(); 7 let mut out = File::create(filename).unwrap(); 8 io::copy(&mut bytes.as_ref(), &mut out).unwrap(); // 問題のライン 9}
これの、io::copy()関数の第一引数は、?Sizedなので不定形(配列)という意味だと思います。
ただ、なぜ &mut bytesではだめで、.as_ref()を付けると大丈夫なのか教えてもらえませんか?
as_ref()はドキュメントだと、チープな変換に使うと書かれているのですが、意味がよく分かりません。
レファレンスを返す関数なのかなとも思うんですが、それなら&&mut bytesでいいじゃないかと思うのでやはり意味が分かりません。
各種ドキュメント
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/13 06:09
2021/09/13 07:35
2021/09/13 09:39 編集
2021/09/13 10:17
2021/09/13 10:31