From a6bb340c2cb9a6a79bc5ba3658e4c66dedc4546d Mon Sep 17 00:00:00 2001 From: Michael-Lai fx Date: Thu, 11 Oct 2018 16:56:06 +0800 Subject: [PATCH 1/3] More detail about expression and statement --- functions/functions5.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/functions/functions5.rs b/functions/functions5.rs index f8fac5d..b074d72 100644 --- a/functions/functions5.rs +++ b/functions/functions5.rs @@ -40,5 +40,8 @@ fn square(num: i32) -> i32 { // This is a really common error that can be fixed by removing one character. // It happens because Rust distinguishes between expressions and statements: expressions return -// a value and statements don't. We want to return a value from the `square` function, but it -// isn't returning one right now... +// a value based on its operand and statements simply retun a `()` type which just like `void` in C/C++ language. +// We want to return a value of `i32` type from the `square` function, but it is returning a `()` type... +// They are not the same. There are two solusions: +// 1. Add a `return` ahead of `num * num;` +// 2. remove `;`, make it to be `num * num` From bce303259f45bca1e04c470c8c3959dd59da2e3d Mon Sep 17 00:00:00 2001 From: Michael-Lai fx Date: Thu, 11 Oct 2018 20:02:19 +0800 Subject: [PATCH 2/3] Update functions5.rs --- functions/functions5.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/functions5.rs b/functions/functions5.rs index b074d72..a7845e9 100644 --- a/functions/functions5.rs +++ b/functions/functions5.rs @@ -40,7 +40,7 @@ fn square(num: i32) -> i32 { // This is a really common error that can be fixed by removing one character. // It happens because Rust distinguishes between expressions and statements: expressions return -// a value based on its operand and statements simply retun a `()` type which just like `void` in C/C++ language. +// a value based on its operand, and statements simply retun a () type which behaves just like `void` in C/C++ language. // We want to return a value of `i32` type from the `square` function, but it is returning a `()` type... // They are not the same. There are two solusions: // 1. Add a `return` ahead of `num * num;` From 33565401e29c067383450501f4b67217888e6514 Mon Sep 17 00:00:00 2001 From: olivia hugger Date: Thu, 11 Oct 2018 14:03:59 +0200 Subject: [PATCH 3/3] Update functions5.rs --- functions/functions5.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/functions5.rs b/functions/functions5.rs index a7845e9..da6b6f9 100644 --- a/functions/functions5.rs +++ b/functions/functions5.rs @@ -40,7 +40,7 @@ fn square(num: i32) -> i32 { // This is a really common error that can be fixed by removing one character. // It happens because Rust distinguishes between expressions and statements: expressions return -// a value based on its operand, and statements simply retun a () type which behaves just like `void` in C/C++ language. +// a value based on its operand, and statements simply return a () type which behaves just like `void` in C/C++ language. // We want to return a value of `i32` type from the `square` function, but it is returning a `()` type... // They are not the same. There are two solusions: // 1. Add a `return` ahead of `num * num;`