From a6bb340c2cb9a6a79bc5ba3658e4c66dedc4546d Mon Sep 17 00:00:00 2001 From: Michael-Lai fx Date: Thu, 11 Oct 2018 16:56:06 +0800 Subject: [PATCH] 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 f8fac5d2..b074d726 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`