mirror of
https://github.com/jbranchaud/til
synced 2026-01-20 23:48:02 +00:00
Compare commits
4 Commits
82fd20700f
...
a488653873
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a488653873 | ||
|
|
b7d4a62ecb | ||
|
|
5615da920f | ||
|
|
c60c63f554 |
@@ -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).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1554 TILs and counting..._
|
_1555 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ _1554 TILs and counting..._
|
|||||||
- [Aliasing An Ansible Host](devops/aliasing-an-ansible-host.md)
|
- [Aliasing An Ansible Host](devops/aliasing-an-ansible-host.md)
|
||||||
- [Allow Cross-Origin Requests To Include Cookies](devops/allow-cross-origin-requests-to-include-cookies.md)
|
- [Allow Cross-Origin Requests To Include Cookies](devops/allow-cross-origin-requests-to-include-cookies.md)
|
||||||
- [Allow HTTPS Through Your UFW Firewall](devops/allow-https-through-your-ufw-firewall.md)
|
- [Allow HTTPS Through Your UFW Firewall](devops/allow-https-through-your-ufw-firewall.md)
|
||||||
- [Check For Cached Site Assocation File For iOS](devops/check-for-cached-site-association-file-for-ios.md)
|
- [Check For Cached Site Association File For iOS](devops/check-for-cached-site-association-file-for-ios.md)
|
||||||
- [Check The Status of All Services](devops/check-the-status-of-all-services.md)
|
- [Check The Status of All Services](devops/check-the-status-of-all-services.md)
|
||||||
- [Check The Syntax Of nginx Files](devops/check-the-syntax-of-nginx-files.md)
|
- [Check The Syntax Of nginx Files](devops/check-the-syntax-of-nginx-files.md)
|
||||||
- [Connect To An RDS PostgreSQL Database](devops/connect-to-an-rds-postgresql-database.md)
|
- [Connect To An RDS PostgreSQL Database](devops/connect-to-an-rds-postgresql-database.md)
|
||||||
@@ -752,7 +752,7 @@ _1554 TILs and counting..._
|
|||||||
- [Check If Clusters Are Upgrade Compatible](postgres/check-if-clusters-are-upgrade-compatible.md)
|
- [Check If Clusters Are Upgrade Compatible](postgres/check-if-clusters-are-upgrade-compatible.md)
|
||||||
- [Check If The Local Server Is Running](postgres/check-if-the-local-server-is-running.md)
|
- [Check If The Local Server Is Running](postgres/check-if-the-local-server-is-running.md)
|
||||||
- [Check If User Role Exists For Database](postgres/check-if-user-role-exists-for-database.md)
|
- [Check If User Role Exists For Database](postgres/check-if-user-role-exists-for-database.md)
|
||||||
- [Check Table For Any Oprhaned Records](postgres/check-table-for-any-orphaned-records.md)
|
- [Check Table For Any Orphaned Records](postgres/check-table-for-any-orphaned-records.md)
|
||||||
- [Checking Inequality](postgres/checking-inequality.md)
|
- [Checking Inequality](postgres/checking-inequality.md)
|
||||||
- [Checking The Type Of A Value](postgres/checking-the-type-of-a-value.md)
|
- [Checking The Type Of A Value](postgres/checking-the-type-of-a-value.md)
|
||||||
- [Clear The Screen In psql](postgres/clear-the-screen-in-psql.md)
|
- [Clear The Screen In psql](postgres/clear-the-screen-in-psql.md)
|
||||||
@@ -1303,6 +1303,7 @@ _1554 TILs and counting..._
|
|||||||
- [Question Mark Operator](ruby/question-mark-operator.md)
|
- [Question Mark Operator](ruby/question-mark-operator.md)
|
||||||
- [Rake Only Lists Tasks With Descriptions](ruby/rake-only-lists-tasks-with-descriptions.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)
|
- [Read The First Line From A File](ruby/read-the-first-line-from-a-file.md)
|
||||||
|
- [Refer To Implicit Block Argument With It](ruby/refer-to-implicit-block-argument-with-it.md)
|
||||||
- [Rendering ERB](ruby/rendering-erb.md)
|
- [Rendering ERB](ruby/rendering-erb.md)
|
||||||
- [Replace The Current Process With An External Command](ruby/replace-the-current-process-with-an-external-command.md)
|
- [Replace The Current Process With An External Command](ruby/replace-the-current-process-with-an-external-command.md)
|
||||||
- [Require Entire Gemfile In Pry Session](ruby/require-entire-gemfile-in-pry-session.md)
|
- [Require Entire Gemfile In Pry Session](ruby/require-entire-gemfile-in-pry-session.md)
|
||||||
|
|||||||
43
ruby/refer-to-implicit-block-argument-with-it.md
Normal file
43
ruby/refer-to-implicit-block-argument-with-it.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Refer To Implicit Block Argument With It
|
||||||
|
|
||||||
|
One of the key features of the Ruby 3.4 release is the `it` implicit block
|
||||||
|
argument.
|
||||||
|
|
||||||
|
The vast majority of inline blocks defined in Ruby code receive a single block
|
||||||
|
argument. Typically we name and reference a block argument explictly like so:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
items.map { |item| item * item }
|
||||||
|
```
|
||||||
|
|
||||||
|
Ruby likes to cut away excess syntax when possible. To that end, the implicit
|
||||||
|
`it` block argument has been added. This is an identifier we can reference in
|
||||||
|
the context of a block and its value is the current
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
items = [1,2,3,4,5]
|
||||||
|
|
||||||
|
squares = items.map { it * it }
|
||||||
|
|
||||||
|
pp squares
|
||||||
|
#=> [1, 4, 9, 16, 25]
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: we cannot mix numbered parameters (`_1`, `_2`) with the `it` parameter.
|
||||||
|
If we do, we'll get the following error:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
def method_using_block(a, b)
|
||||||
|
yield(a, b) if block_given?
|
||||||
|
end
|
||||||
|
|
||||||
|
puts method_using_block(4,5) { _2 ** _1 } #=> 625
|
||||||
|
puts method_using_block(4,5) { _2 ** it }
|
||||||
|
# it_block.rb:12: syntax error found (SyntaxError)
|
||||||
|
# 10 |
|
||||||
|
# 11 | puts method_using_block(4,5) { _2 ** _1 }
|
||||||
|
# > 12 | ... it }
|
||||||
|
# | ^~ `it` is not allowed when a numbered parameter is already used
|
||||||
|
```
|
||||||
|
|
||||||
|
[source](https://docs.ruby-lang.org/en/3.4/NEWS_md.html)
|
||||||
Reference in New Issue
Block a user