>>263
Vecを受けてVecを返すインタフェースに通常することはない
普通は以下のようにする
(1) 同じVecを返す場合 (=書き換えたい場合)
まずこの場合はVec<T>自体を渡さなくても参照を渡せば済む
書き換えるから&mut Vec<T>を渡せばいいように思うが
普通はスライス&mut [T]を渡すインタフェースにする
なぜならVecの書き換え参照を渡すとVecの書き換えしかできないが
スライスの書き換え参照を渡せばVecの途中一部の書き換えもできるし
配列や配列の途中一部の書き換えもできるからである
(2) 別のVecを返す場合 (=引数側のVecのデータから作り出したい場合)
この場合も同様となる
引数としてVec<T>を渡すのではなくスライス共有参照&[T]を引数にする
これで入力データがVecだけでなく配列やそれらの一部でも受け付けることが可能
(2)' (2)のケースで入力を順次アクセスのみする場合
この場合は入力としてイテレータを受け付けられると良い場合がある
なぜならイテレータはVecのようなメモリ領域を必要としないため有利
イテレータを入力とする場合のインタフェースは更に2通りに分かれる
[a] イテレータのメソッドとしてしまう
イテレータチェーンに組み込むことができて便利
ただしVecや配列やスライスに適用する時はinput.iter().method()の形になる
[b] 引数として IntoIterator<Item=T> を受け付ける
これだと引数に直接スライス、配列、Vec、イテレータのどれも渡せて便利
ただしイテレータチェーンに組み込むことはできない
イテレータメソッドの2つ目の入力インタフェースとしても使われる
どちらの場合でも順次出力でない場合ならばVecを返すのもありだが
順次出力ならばイテレータを返したほうがイテレータチェーンに組み込めて有利
なぜなら中間生成Vecを無駄に返さずに済むからである
この場合にVecが欲しければcollect()すればよい
探検
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
278デフォルトの名無しさん
2022/03/26(土) 20:52:37.86ID:Vz8Iz6e1■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- バカ「日銀は利上げしろ!(発狂)」、ぼく「(鼻くそをほじりながら)日銀はETF売れw」 [757644362]
- Vtuber「人気アニメとコラボします!」←これでVが叩かれるの謎じゃね
- Xでフォローしてきた人をフォロバして相手のフォロー解除するのが趣味なんだが
- 愛国者「徴兵されるのは嫌。でも敵が侵略してきたら考えます」 [834922174]
- (´・ω・`)おみゃんりゃ〜
