gpt4 book ai didi

rust - 在Rust中返回函数的正确语法是什么?

转载 作者:行者123 更新时间:2023-12-03 11:27:44 25 4
gpt4 key购买 nike

在Rust中返回函数的正确语法是什么?
以下代码无法编译,谢谢。

  fn identity<T>(a: T) -> T {
return a;
};

fn right<T>(a: T) -> Fn {
return identity;
};

最佳答案

这里(playground)是一个最小的示例:

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项和未捕获的闭包强制转换为函数指针,因此,尽管更简单,但这并非在所有情况下均有效。

    关于rust - 在Rust中返回函数的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63967743/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com