Vimal
1
Hi
Say I have a Hash, and an instance called wordcount, that maps strings
to a number count, that counts the occurance of the word.
I do
count = Hash.new
count[word]++ if count[word]
count[word]=1 unless count[word]
everytime! Is there a simple way to do it?
Thanks
Vimal
Vimal
2
Hi –
On Mon, 25 Sep 2006, Vimal wrote:
Hi
Say I have a Hash, and an instance called wordcount, that maps strings
to a number count, that counts the occurance of the word.
I do
count = Hash.new
count[word]++ if count[word]
Not in Ruby you don’t
count[word]=1 unless count[word]
everytime! Is there a simple way to do it?
You could do:
count = Hash.new(0) # default to 0
count[word] += 1 # each time through loop
David
Vimal
3
class Hash
def increment_word_count(key)
self[key] ||= 1
self[key] += 1
end
end
count = Hash.new
count.increment_word_count(word)
Of course, if you can think of a better method name, but this will help
with
DRYness.
Jason
Vimal
4
Doh! I’m getting caught up in the cooler features of Ruby and forgetting
the
simple stuff. David’s got it right.
Jason
Vimal
5
Hi –
On Mon, 25 Sep 2006, Jason R. wrote:
Of course, if you can think of a better method name, but this will help with
DRYness.
There’s also DRR (Don’t Repeat Ruby Hashes are already good at
this stuff (see my previous response).
David