gpt4 book ai didi

generics - 如何定义一个返回自己类型的 Rust 函数类型?

转载 作者:行者123 更新时间:2023-11-29 07:49:56 25 4
gpt4 key购买 nike

我正在学习 Rust,并且仍然非常努力地了解它。考虑以下 Go 定义:

type FnType func(paramType) FnType

它只是一个返回相同类型函数的函数。可以在 Rust 中实现类似的东西吗?而且,理想情况下,它是否可以通用地完成,以便 paramType 由客户端指定?

最佳答案

我在文档中做了一些挖掘,然后去了 Playground ,我想我已经能够自己回答这个问题,尽管它确实需要一个中间类型:一个 enum,具体来说。

fn main() {
let mut state = State::Some(first);
while let State::Some(s) = state {
state = s(0)
}
}

enum State<T> {
Some(fn(T) -> State<T>),
None,
}

fn first(_: i32) -> State<i32> {
println!("First");
State::Some(second)
}

fn second(_: i32) -> State<i32> {
println!("Second");
State::None
}

您可以验证它是否在 playground 上运行.

关于generics - 如何定义一个返回自己类型的 Rust 函数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39130293/

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