[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
903
(3): デフォルトの名無しさん [sage] 2024/07/21(日) 09:43:03.00 ID:QhoywuRk(1/4) AAS
>>901
901(1): デフォルトの名無しさん [sage] 2024/07/20(土) 23:38:20.92 ID:6EAP68vq(1) AAS
>>897
HashMapとVecにTryFromが実装されていないから無理
FromIteratorが実装されているのでそれを使う
こういうのが「Rustは学習コストが高い」って言われる原因なんだろうな
答えを知ってる人は判ってても答えを知らない人は判らない
答えを調べるのにコストがかかりすぎる
912: デフォルトの名無しさん [sage] 2024/07/21(日) 12:08:53.38 ID:QhoywuRk(2/4) AAS
今回は >>910
910(2): デフォルトの名無しさん [sage] 2024/07/21(日) 11:48:09.12 ID:W0nR4Dwz(2/3) AAS
from_iter(array)で済むのに
なぜ配列からHashMapへのFromがあるのか理由はおそらく
配列からmoveするinto_iter()が数年前までなかったためだと思う
今は配列を含めて要素が複数なら→イテレータ利用→FromIteratorと覚えればよいかと
さんをベストアンサーとさせて頂きます
みなさんご協力ありがとうございました
914: デフォルトの名無しさん [sage] 2024/07/21(日) 12:17:32.92 ID:QhoywuRk(3/4) AAS
>>911
911(2): デフォルトの名無しさん [] 2024/07/21(日) 11:54:05.33 ID:9I2odrUJ(1) AAS
そもそもイテレーターとコンテナの概念を勘違いしてる可能性ありそう
別種のコンテナ同士の変換は (特別な対応がない限り) 直接的には無理で、イテレーターを介して中身の要素を走査すれば渡せるということ

みかん箱を冷蔵庫に変換することはできないけど、箱の中のみかんを1つずつ取り出して、それを冷蔵庫型に纏める (collect) ことはできるような感じ
勘違いはしてない

use std::collections::HashMap;
use std::iter::FromIterator;

fn main() {
let u = vec![("hoge", 1), ("fuga", 2)];
let x: HashMap::<_, _> = u.into_iter().collect();
println!("{:?}", x);
let v = vec![("hoge", 1), ("fuga", 2)];
let y = HashMap::<_, _>::from_iter(v); // use std::iter::FromIterator
println!("{:?}", y);
let w = [("hoge", 1), ("fuga", 2)]; // array
let z = HashMap::<_, _>::from(w);
println!("{:?}", z);
}
915
(1): デフォルトの名無しさん [sage] 2024/07/21(日) 12:21:47.94 ID:QhoywuRk(4/4) AAS
なぜ Vec から HashMap は from が使えないのか?
の問いに GPT は答えてくれない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s