このコード:タイプが一致しません。予想I32、見つかっ()
fn ackermann(m: i32, n: i32) -> i32 {
if m == 0 {
return n + 1;
} else if m > 0 && n == 0 {
return ackermann(m - 1, 1);
} else if m > 0 && n > 0 {
return ackermann(m - 1, ackermann(m, n - 1));
}
}
は、コンパイル時にエラーが発生しました:すべてのコードパスの
error: mismatched types [--explain E0308]
--> src/main.rs:3:5
|>
3 |> if m == 0 {
|> ^expected i32, found()
note: expected type `i32`
note: found type `()`
最後のブランチに 'u32'と' else'だけを使うことができます。 (おそらく 'm'と' u64'の残りの 'u8'がより適切でしょう) – starblue