相关疑难解决方法(0)

"dyn"在一个类型中意味着什么?

我最近看到使用dyn关键字的代码:

fn foo(arg: &dyn Display) {}

fn bar() -> Box<dyn Display> {}
Run Code Online (Sandbox Code Playgroud)

这个语法是什么意思?

syntax rust

41
推荐指数
3
解决办法
2788
查看次数

如何将 Future 作为函数参数传递?

我习惯了 Scala 的类型,在这种类型Future中,您可以包装要返回的任何对象来指定它。Future[..]

我的 Rust 函数hello返回Query,但我似乎无法将该结果作为 type 的参数传递Future<Output = Query>。为什么不呢?我应该如何更好地输入它?

当我尝试将未来作为参数传递时,就会发生失败:

use std::future::Future;

struct Person;
struct DatabaseError;

type Query = Result<Vec<Person>, DatabaseError>;

async fn hello_future(future: &dyn Future<Output = Query>) -> bool {
    future.await.is_ok()
}

async fn hello() -> Query {
    unimplemented!()
}

async fn example() {
    let f = hello();
    hello_future(&f);
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

编译失败并出现以下错误:

error[E0277]: `&dyn Future<Output = Result<Vec<Person>, DatabaseError>>` is not a future
 --> src/main.rs:9:5
  |
9 | …
Run Code Online (Sandbox Code Playgroud)

future rust rust-tokio tokio-postgres

6
推荐指数
1
解决办法
3202
查看次数

当用作函数的参数类型或返回类型时,`impl`是什么意思?

我读了这段代码:

pub fn up_to(limit: u64) -> impl Generator<Yield = u64, Return = u64> {
    move || {
        for x in 0..limit {
             yield x;
        }
        return limit;
    }
}
Run Code Online (Sandbox Code Playgroud)

什么impl意思?如何在普通的Rust或C++中实现它?

rust

5
推荐指数
2
解决办法
521
查看次数

标签 统计

rust ×3

future ×1

rust-tokio ×1

syntax ×1

tokio-postgres ×1