clone()が一個でコンパイル通ったからそのコードでのコピーは一回ではないか
use std::ops::{Add, Sub};
fn f<T>(n: T) -> T where T: Clone + PartialEq + TryFrom<usize> + Add<Output=T> + Sub<Output=T> {
let [zero, one, two] = [0, 1, 2].map(|n| T::try_from(n).ok().unwrap());
match n {
n if n == zero => zero,
n if n == one => one,
n => f(n.clone() - one) + f(n - two),
}
}
Rust part15
■ このスレッドは過去ログ倉庫に格納されています
124デフォルトの名無しさん
2022/05/18(水) 13:41:52.15ID:mX15beFi■ このスレッドは過去ログ倉庫に格納されています
