玩Rust时,我将某些代码提取到一个类中。为了保持它的自包含性但同时分离功能,我想保留回调函数并稍后调用它。为了保持简单,包括跳过显而易见的fn new()
,我们有以下内容:
pub struct Toy {
go: fn(count: i16) -> String,
}
impl Toy {
fn lets_go(&mut self, n: i16) -> String {
self.go(n)
}
}
建筑让我感到...
...path.../src/toy.rs:7:14: 7:19 error: type `&mut toy::Toy` does not implement any method in scope named `go`
...path.../src/toy.rs:7 self.go(n)
我猜测,可能有一种特殊的语法(或完全不同的结构)可以理解 self.go()
的调用,但我在任何文档中都没有看到类似情况的示例或描述,因此我希望得到任何指引。
显然,.go
可能属于一个类似函数对象的类,但这在 Rust 中似乎不是很惯用的写法。