mirror of
https://github.com/jbranchaud/til
synced 2026-01-02 22:58:01 +00:00
Add Precedence Of Logical Operators as a Ruby TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
||||
|
||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||
|
||||
_1259 TILs and counting..._
|
||||
_1260 TILs and counting..._
|
||||
|
||||
---
|
||||
|
||||
@@ -1058,6 +1058,7 @@ _1259 TILs and counting..._
|
||||
- [Passing Arguments To A Rake Task](ruby/passing-arguments-to-a-rake-task.md)
|
||||
- [Pattern Match Values From A Hash](ruby/pattern-match-values-from-a-hash.md)
|
||||
- [Percent Notation](ruby/percent-notation.md)
|
||||
- [Precedence Of Logical Operators](ruby/precedence-of-logical-operators.md)
|
||||
- [Question Mark Operator](ruby/question-mark-operator.md)
|
||||
- [Rake Only Lists Tasks With Descriptions](ruby/rake-only-lists-tasks-with-descriptions.md)
|
||||
- [Read The First Line From A File](ruby/read-the-first-line-from-a-file.md)
|
||||
|
||||
23
ruby/precedence-of-logical-operators.md
Normal file
23
ruby/precedence-of-logical-operators.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Precedence Of Logical Operators
|
||||
|
||||
There are two sets of logical operators that you are going to see in Ruby. The
|
||||
more common and idiomatic set are `!`, `&&`, and `||`. Relative to all the
|
||||
other operators in the Ruby language, these three have high precedence.
|
||||
|
||||
The other set of logical operators are `not`, `and`, and `or`. These ones have
|
||||
relatively much lower precedence. Though they work conceptually the same.
|
||||
|
||||
The reason to be aware of the differences in precedence is that if you were to
|
||||
mix the two sets, you could end up with unexpected results.
|
||||
|
||||
```ruby
|
||||
> not true && false
|
||||
=> true
|
||||
> !true && false
|
||||
=> false
|
||||
```
|
||||
|
||||
To keep my Ruby code idiomatic and to avoid these kinds of potential logical
|
||||
mixups, I stick to using nearly exclusively the first set—`!`, `&&`, and `||`.
|
||||
|
||||
[source](https://ruby-doc.org/core-2.6.2/doc/syntax/precedence_rdoc.html)
|
||||
Reference in New Issue
Block a user