我很确定这样的代码之前有效:
fn f<F: fn()>(f: F) {
}
但是,现在它给出以下错误:
error: expected one of `(`, `,`, `=`, `>`, `?`, `for`, lifetime, or path, found `fn`
--> src/main.rs:96:13
|
96 | fn f<F: fn()>(f: F) {
| -^^ unexpected token
| |
| expected one of 8 possible tokens here
请注意,这编译好:
fn f(f: fn()) {
}
你必须使用function trait:
fn f<F: Fn()>(f: F) {
}
fn
是function pointer,而不是特质。
请注意,您也可以这样写:
fn f(f: fn()) {
}