適当に作れば溢れる前に止まる
fn countup<T>(start: T) -> impl Iterator<Item=T>
where T: Clone + TryFrom<usize> + num::CheckedAdd,
{
let one = T::try_from(1).ok().unwrap();
itertools::unfold((start, true), move |(n, is_first)| {
if *is_first {
*is_first = false;
Some(n.clone())
} else {
n.checked_add(&one)
.map(|new| {
*n = new.clone();
new
})
}
})
}
fn main() {
countup(1_i8).for_each(|n| print!("{n} "));
}
探検
Rust part14
レス数が950を超えています。1000を超えると書き込みができなくなります。
976デフォルトの名無しさん
2022/05/12(木) 07:30:29.11ID:mtqXpgibレス数が950を超えています。1000を超えると書き込みができなくなります。
