[#99115] [Ruby master Bug#17023] How to prevent String memory to be relocated in ruby-ffi — larskanis@...
Issue #17023 has been reported by larskanis (Lars Kanis).
22 messages
2020/07/10
[#99375] [Ruby master Feature#17055] Allow suppressing uninitialized instance variable and method redefined verbose mode warnings — merch-redmine@...
Issue #17055 has been reported by jeremyevans0 (Jeremy Evans).
29 messages
2020/07/28
[#101207] [Ruby master Feature#17055] Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
— merch-redmine@...
2020/12/02
Issue #17055 has been updated by jeremyevans0 (Jeremy Evans).
[#101231] Re: [Ruby master Feature#17055] Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
— Austin Ziegler <halostatue@...>
2020/12/03
What does this mean?
[ruby-core:99042] [Ruby master Feature#17006] Let `Kernel#Hash` take a block to provide the default value
From:
sawadatsuyoshi@...
Date:
2020-07-03 08:09:02 UTC
List:
ruby-core #99042
Issue #17006 has been reported by sawa (Tsuyoshi Sawada).
----------------------------------------
Feature #17006: Let `Kernel#Hash` take a block to provide the default value
https://bugs.ruby-lang.org/issues/17006
* Author: sawa (Tsuyoshi Sawada)
* Status: Open
* Priority: Normal
----------------------------------------
Sometimes, we need to create a hash that has explicit key-value pairs as well as a default value, but there has not been a way to do that at once. The most naive way is to do like this:
```ruby
h = {a: 1, b: 2}
h.default_proc = ->(k, v){raise "Unknown key #{k}"}
h # => ...
```
A more sophisticated way is this:
```ruby
Hash.new{|k, v| raise "Unknown key #{k}"}.merge({a: 1, b: 2})
```
But that is still not short enough, and it also looks backwards, i.e., we usually want to specify the explicit key-value pairs before the default value.
My proposal is to allow `Kernel#Hash` to take a block that provides the default value in the same way as the block of `Hash.new`:
```ruby
Hash({a: 1, b: 2}){|k, v| raise "Unknown key #{k}"}
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>