在Rust中返回函数的正确语法是什么?
以下代码无法编译,谢谢。
fn identity<T>(a: T) -> T {
return a;
};
fn right<T>(a: T) -> Fn {
return identity;
};
这里(游乐场)是一个最小的示例:
fn identity<T>(a: T) -> T {
return a;
}
fn right<T>(_a: T) -> impl Fn(T) -> T {
return identity;
}
fn main() {
println!("{}", right(0)(42))
}
你需要:
Fn(T) -> T
。right
返回类型impl
可体现特征 Fn(T) -> T
。或者,您也可以将函数指针编写fn(T) -> T
为返回类型。由于这不是特征,因此不需要impl
关键字:
fn right<T>(_a: T) -> fn(T) -> T {
return identity;
}
只能将fn
项目和非捕获的闭包强制转换为函数指针,因此,尽管更简单,但这并非在所有情况下均有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句