小编F00*_*001的帖子

如何将通用函数和类型存储在rlib中?

在C++中,模板无法生成动态库,我们只能通过头文件使用它们.

在C#中,泛型函数和类型可以用.NET中的中间语言来解释.

Rust没有虚拟机,并且泛型可以存储在rlib文件中.它是如何实现这一目标的?rlib文件的格式是什么?

generics rust

18
推荐指数
1
解决办法
636
查看次数

如何设置'crates.io'的本地存储库?

在我的国家访问'crates.io'真的很慢.我可以为我们的团队设置一个'crates.io'的本地存储库吗?有没有详细的文件?

rust rust-cargo

6
推荐指数
0
解决办法
83
查看次数

如何使用一个闭包作为另一个闭包的参数?

代码如下:

fn main() {
  let arg = | | println!("closure");
  let call_twice = | c | { c(); c(); };
  call_twice(arg);
}
Run Code Online (Sandbox Code Playgroud)

但是编译器无法推断出参数的正确类型c。错误信息:

error: the type of this value must be known in this context

我如何告诉编译器参数的类型是泛型类型,它 impls Fn


编辑:如果参数类型是特征对象,则代码可以被编译器接受。但间接是没有必要的,是吗?

fn main() {
  let arg = | | println!("closure");
  let call_twice = | c :&Fn() | { c(); c(); };
  call_twice(&arg);
}
Run Code Online (Sandbox Code Playgroud)

感谢您的回答。但让我困惑的是类型推断问题。使用 anfn可以使编译器满意。

fn main() {
 let arg = | | println!("closure");

 // now compiler …
Run Code Online (Sandbox Code Playgroud)

closures type-inference rust

5
推荐指数
1
解决办法
101
查看次数

标签 统计

rust ×3

closures ×1

generics ×1

rust-cargo ×1

type-inference ×1