構造体のimpl
にある関数からfor
ループ内にある関数ポインタを返そうとしています。内部ループからの戻り型の不一致
fn locate_func(&self, string: &str) -> fn() -> bool {
let mut func;
for alt in &self.alts {
return alt.func;
}
}
は、将来的にfor
ループ内if
の文がありますが、私は非常に現時点で物事をテストしていて、それはかなり一般的な、やや非論理的に見えます。
私の心の中で上記のコードは、それが私に語ったので、私はそのラインのリターンとセミコロンを削除する必要がありますように、明らかにポインタである、alt.func()
へのポインタを返すことになっています。
error[E0308]: mismatched types
--> src\main.rs:42:3
|
42 | for alt in &self.alts
| ^expected fn pointer, found()
|
= note: expected type `fn() -> bool`
= note: found type `()`
以上は、実行時に発生するエラーです。locate_func()
です。上記のコードが正しく動作していないので、私は明らかに何かが欠落しています。何かヒント?
'self.alts'が空の場合、あなたは何を返そうとしていますか? – user4815162342
そうでないことが保証されています。 –
しかし、これはコードポイントに優れています。 –