diff options
| author | bors <bors@rust-lang.org> | 2013-06-07 23:40:25 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-06-07 23:40:25 -0700 |
| commit | 1cf57f7b673ca94a32ec82c31b2bce79a5ca9394 (patch) | |
| tree | e1c33371fc5b65725f2de890e48e44dfe73f5274 | |
| parent | 88517f98743a5cbaaa818376eea77229da3c8453 (diff) | |
| parent | 93b2ddfc88f581a1155236c9ac79983f72b0ff46 (diff) | |
| download | rust-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.md | 13 |
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 }; |
