Object initialization problem

V

Vimal

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
 
D

dblack

Hi --

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

--
David A. Black | (e-mail address removed)
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] http://www.manning.com/black | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org
 
D

dblack

Hi --

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.

There's also DRR (Don't Repeat Ruby :) Hashes are already good at
this stuff (see my previous response).


David

--
David A. Black | (e-mail address removed)
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] http://www.manning.com/black | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,213
Messages
2,571,105
Members
47,699
Latest member
lovelybaghel

Latest Threads

Top