小编Eva*_*Red的帖子

无法创建本地函数,因为"无法捕获fn项目中的动态环境"

有没有办法创建像这个Python代码的本地函数?

def h():
    final = []
    def a():
        for i in range(5):
            final.append(i)
        a()
        return final
Run Code Online (Sandbox Code Playgroud)

我试过了,但失败了:

fn h() -> Vec<i32> {
    let mut ff = vec![];
    fn a() {
        for i in 0..5 {
            ff.push(i)
        }
    };
    a();
    ff
}
Run Code Online (Sandbox Code Playgroud)
 error[E0434]: can't capture dynamic environment in a fn item; use the || { ... } closure form instead
 --> src/main.rs:5:13
  |
5 |             ff.push(i)
  |             ^^
Run Code Online (Sandbox Code Playgroud)

function rust

9
推荐指数
1
解决办法
3126
查看次数

如何在模式匹配中使用box关键字?

此代码显示在Rust编程语言中:

#![feature(box_syntax, box_patterns)]

fn main() {
    let b = Some(box 5);
    match b {
        Some(box n) if n < 0 => {
            println!("Box contains negative number {}", n);
        }
        Some(box n) if n >= 0 => {
            println!("Box contains non-negative number {}", n);
        }
        None => {
            println!("No box");
        }
        _ => unreachable!(),
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,会发生以下错误:

error[E0554]: #[feature] may not be used on the stable release channel
Run Code Online (Sandbox Code Playgroud)

我也试过了

fn main() {
    let b = Some(box 5);
}
Run Code Online (Sandbox Code Playgroud)
error: …
Run Code Online (Sandbox Code Playgroud)

boxing pattern-matching rust

4
推荐指数
2
解决办法
3058
查看次数

标签 统计

rust ×2

boxing ×1

function ×1

pattern-matching ×1