在C++中,模板无法生成动态库,我们只能通过头文件使用它们.
在C#中,泛型函数和类型可以用.NET中的中间语言来解释.
Rust没有虚拟机,并且泛型可以存储在rlib文件中.它是如何实现这一目标的?rlib文件的格式是什么?
在我的国家访问'crates.io'真的很慢.我可以为我们的团队设置一个'crates.io'的本地存储库吗?有没有详细的文件?
代码如下:
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)