mirror of
https://github.com/jbranchaud/til
synced 2026-01-04 23:58:01 +00:00
Add Precedence Of Logical Operators as a Ruby TIL
This commit is contained in:
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