|
|
|
|
|
by jihiggins
717 days 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 |
|