3 ms·
this is what those end up being, it's pretty straightforward? fn five() -> i32 { return 5; } fn five() -> i32 { 5; return
by jihiggins 2y ago
this is what those end up being, it's pretty straightforward?
fn five() -> i32 {
return 5;
}
fn five() -> i32 {
5;
return ();
}
semicolon changes the expression from returning the result of the expression to running the expression and returning the unit type. if you accidentally do that and specified a non-unit-return-type in the function signature, the type checker tells you about it:
error[E0308]: mismatched types
--> src/main.rs:1:14
|
1 | fn test() -> i32 {
| ---- ^^^ expected `i32`, found `()`
| |
| implicitly returns `()` as its body has no tail or `return` expression
2 | 5;
| - help: remove this semicolon to return this value
which is also pretty clear about the solution