Skip to content

Commit

Permalink
Auto merge of #38436 - bluecereal:patch-1, r=frewsxcv
Browse files Browse the repository at this point in the history
Update if-let.md

Calling if-let a combination of if and let is confusing, as some may be led to believe that it's a literal combination, instead of syntactic sugar added to the language as a convenience.  What's there to stop someone from thinking if-let is just if and let together?

I do think this article does a good job of implying what's really going on; however, I was only able to notice this after I had begun to understand if/while-let statements, courtesy of the Rust IRC chat.

Basically, this article lacks the clarity and explicitness an inexperienced programmer like me needs in order to understand the contents fully.  This is shown by my inability to understand the if-let concept from this page of the Book alone.

I think convenience, sugar, and (if-let != if + let) should all be made mention of in a clear, explicit manner. I lack confidence in my understanding of this issue, so I wrote just enough to hopefully get my thoughts across.
  • Loading branch information
bors committed Feb 6, 2017
2 parents a3da24b + fb7f211 commit 4711ac3
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/doc/book/if-let.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
% if let

`if let` allows you to combine `if` and `let` together to reduce the overhead
of certain kinds of pattern matches.
`if let` permits [patterns][pattern] matching within the condition of an [if][if] statement.
This allows us to reduce the overhead of certain kinds of [pattern][patterns] matches
and express them in a more convenient way.

For example, let’s say we have some sort of `Option<T>`. We want to call a function
on it if it’s `Some<T>`, but do nothing if it’s `None`. That looks like this:
Expand Down Expand Up @@ -80,3 +81,4 @@ while let Some(x) = v.pop() {
```

[patterns]: patterns.html
[if]: if.html

0 comments on commit 4711ac3

Please sign in to comment.