[ruby-de] unsichtbare Hashwerte

Robert Klemme shortcutter at googlemail.com
Mi Mai 3 01:38:34 JST 2017


2017-05-02 17:31 GMT+02:00 Die Optimisten <inform at die-optimisten.net>:
> On 2017-05-02 09:54, Robert Klemme wrote:
> [...]
>>
>> * Es gibt tatsächlich ein paar seltene Anwendungsfälle, in denen das
>> sinnvoll ist. Man kann z.B. den Default-Wert als "catch all"
>> verwenden:
>>
>> h = Hash.new []
>>
>> # Phase 1: Vorbereitung
>> special_values.each do |sv|
>>    h[sv] = []
>> end
>>
>> # Phase 2: Sammeln
>> File.foreach do |line|
>>    key = line[/\d+/]
>>    h[key] << line
>> end
>>
>> # Phase 3: Auswertung
>> h.each_pair do |k, v|
>>    printf "%p -> %p\n", k, v
>> end
>>
>> puts "Rest:"
>> p h.default
>>
>> Und der ist ja gespeichert - nur halt nicht unter irgendeinem Schlüssel.
>> ;-)
>
>
> ;))
>
> Hallo!
> Danke --- Ist das normal, daß ich 3 Stunden brauchte, um den Code zu
> verstehen ?!?

Keine Ahnung, ist es? Der Code oben ist nicht besonders (außer, dass
er unvollständig ist, weil z.B. nicht gezeigt wird, wie special_values
zustande kommt).

> Wenn ich Deinen Blog richtig interpretiere: Der Hash besteht aus lauter
> Immutables und einem Mutable?

Welcher Hash?

> Bin ich froh, daß da keine Threads im Spiel sind ;)
> Bin aber noch erst am (weiten) Weg ein Experte zu werden!

Wir haben ja alle mal klein angefangen.

> Gibts einen Unterschied zw IO.foreach und File.foreach ? (denke nicht)

-> Doku

> %p scheint == %x zu sein?

Nein, ist Ergebnis von #inspect. -> Doku

Ciao

robert

-- 
[guy, jim, charlie].each {|him| remember.him do |as, often| as.you_can
- without end}
http://blog.rubybestpractices.com/


Mehr Informationen über die Mailingliste ruby-de