diff options
author | Victor Shepelev <zverok.offline@gmail.com> | 2021-12-19 18:09:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-20 01:09:52 +0900 |
commit | a0f10a973fb94a0ee73da7cab792128cdf601783 (patch) | |
tree | e025219312d597d04d0670951c13a867f2f98721 /doc | |
parent | 1dd10e189274546689c0b59f6a76849b2808f255 (diff) | |
download | ruby-a0f10a973fb94a0ee73da7cab792128cdf601783.tar.gz |
[DOC] Add documentation for hash value omission syntax
Diffstat (limited to 'doc')
-rw-r--r-- | doc/syntax/calling_methods.rdoc | 18 | ||||
-rw-r--r-- | doc/syntax/literals.rdoc | 8 |
2 files changed, 26 insertions, 0 deletions
diff --git a/doc/syntax/calling_methods.rdoc b/doc/syntax/calling_methods.rdoc index fc806d5c31..da061dbfdb 100644 --- a/doc/syntax/calling_methods.rdoc +++ b/doc/syntax/calling_methods.rdoc @@ -210,6 +210,24 @@ definition. If a keyword argument is given that the method did not list, and the method definition does not accept arbitrary keyword arguments, an ArgumentError will be raised. +Keyword argument value can be omitted, meaning the value will be be fetched +from the context by the name of the key + + keyword1 = 'some value' + my_method(positional1, keyword1:) + # ...is the same as + my_method(positional1, keyword1: keyword1) + +Be aware that when method parenthesis are omitted, too, the parsing order might +be unexpected: + + my_method positional1, keyword1: + + some_other_expression + + # ...is actually parsed as + my_method(positional1, keyword1: some_other_expression) + === Block Argument The block argument sends a closure from the calling scope to the method. diff --git a/doc/syntax/literals.rdoc b/doc/syntax/literals.rdoc index 66e17fd503..32fe5110ce 100644 --- a/doc/syntax/literals.rdoc +++ b/doc/syntax/literals.rdoc @@ -356,6 +356,14 @@ is equal to { :"a 1" => 1, :"b 2" => 2 } +Hash values can be omitted, meaning that value will be fetched from the context +by the name of the key: + + x = 100 + y = 200 + h = { x:, y: } + #=> {:x=>100, :y=>200} + See Hash for the methods you may use with a hash. == \Range Literals |