相关疑难解决方法(0)

与Rust相关的惯用语匹配

我是Rust的新手,但作为Haskell的粉丝,我非常感谢matchRust的工作方式.现在我面临着一个罕见的情况,我确实需要堕落 - 从某种意义上说,我希望所有匹配的几个重叠的案例都能被执行.这有效:

fn options(stairs: i32) -> i32 {
    if stairs == 0 {
        return 1;
    }
    let mut count: i32 = 0;
    if stairs >= 1 {
        count += options(stairs - 1);
    }
    if stairs >= 2 {
        count += options(stairs - 2);
    }
    if stairs >= 3 {
        count += options(stairs - 3);
    }
    count
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是否是Rust中的惯用语或是否有更好的方法.

编辑:上下文是Cracking the Coding Interview的一个问题:"一个孩子正在爬楼梯,有n个步骤,可以一步跳1步,2步或3步.实施一种方法来计算孩子爬楼梯的可能方式."

idioms fibonacci fall-through rust

0
推荐指数
2
解决办法
2217
查看次数

标签 统计

fall-through ×1

fibonacci ×1

idioms ×1

rust ×1