about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-07 23:40:25 -0700
committerbors <bors@rust-lang.org>2013-06-07 23:40:25 -0700
commit1cf57f7b673ca94a32ec82c31b2bce79a5ca9394 (patch)
treee1c33371fc5b65725f2de890e48e44dfe73f5274
parent88517f98743a5cbaaa818376eea77229da3c8453 (diff)
parent93b2ddfc88f581a1155236c9ac79983f72b0ff46 (diff)
downloadrust-1cf57f7b673ca94a32ec82c31b2bce79a5ca9394.tar.gz
rust-1cf57f7b673ca94a32ec82c31b2bce79a5ca9394.zip
auto merge of #7003 : alco/rust/tutorial-block-expr, r=bstrie
This is something that's only been briefly mentioned in the beginning of
the tutorial and all of the closure examples within this subsection
include only one expression between { and }.
-rw-r--r--doc/tutorial.md13
1 files changed, 9 insertions, 4 deletions
diff --git a/doc/tutorial.md b/doc/tutorial.md
index 56630d0c9c6..a3c17d6b869 100644
--- a/doc/tutorial.md
+++ b/doc/tutorial.md
@@ -1442,10 +1442,15 @@ call_closure_with_ten(closure);
 ~~~~
 
 Closures begin with the argument list between vertical bars and are followed by
-a single expression. The types of the arguments are generally omitted,
-as is the return type, because the compiler can almost always infer
-them. In the rare case where the compiler needs assistance, though, the
-arguments and return types may be annotated.
+a single expression. Remember that a block, `{ <expr1>; <expr2>; ... }`, is
+considered a single expression: it evaluates to the result of the last
+expression it contains if that expression is not followed by a semicolon,
+otherwise the block evaluates to `()`.
+
+The types of the arguments are generally omitted, as is the return type,
+because the compiler can almost always infer them. In the rare case where the
+compiler needs assistance, though, the arguments and return types may be
+annotated.
 
 ~~~~
 let square = |x: int| -> uint { x * x as uint };