[過去ログ]
Rust part21 (1002レス)
Rust part21 http://mevius.5ch.net/test/read.cgi/tech/1692105879/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
364: デフォルトの名無しさん [] 2023/09/21(木) 23:58:45.91 ID:+/xN81gC 以下のような関数(実際のものとは少し違いますが)を実装してみたのですがイテレータのメソッドチェーンの箇所で型が合っていないとコンパイルエラーが発生します アルゴリズム自体を変更することで目的としていた処理はできましたが結局このエラーの直し方がわかりません ライフタイム周りが原因だとは考えていますがどのように修正すればよいしょうか fn hoge( func: &impl Fn((&i64, i64)) -> i64, arr: &[i64], ret: &mut Vec<impl Iterator<Item = i64>> ) { ret.push(arr.iter().zip(std::iter::repeat(arr[0])).map(func)); for i in 1..arr.len() { hoge(func, &arr[i..], ret); } } http://mevius.5ch.net/test/read.cgi/tech/1692105879/364
378: デフォルトの名無しさん [] 2023/09/23(土) 16:36:06.31 ID:WPP4nTE5 >>364です 補足すると今回自分がわかっていなかったのは以下のような関数がコンパイルを通らないということですね ``` fn hoge<T>(a: i64, b: &mut T) { *b = a; } ``` impl Traitが単にジェネリクスの糖衣構文であるということと、 トレイト境界を満たす型をジェネリクス引数に渡した場合は合法に"ならなければならない"、トレイト境界は十分条件も満たさなくてはならないという点を解っていなかったのがポイントでした... http://mevius.5ch.net/test/read.cgi/tech/1692105879/378
390: デフォルトの名無しさん [sage] 2023/09/26(火) 21:41:38.03 ID:aJs6t/KK >>378 >fn hoge<T>(a: i64, b: &mut T) fn hoge<T>(a: T, b: &mut T)にすればいいと思うけど 同じような解決策が>>364にあるということなの? http://mevius.5ch.net/test/read.cgi/tech/1692105879/390
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.052s