On Thu, Aug 16, 2012 at 3:51 PM, ajay paswan <[email protected]> wrote:
> suppose
> var="world"
> I want to call a method called hello_world() using the variable var. How
> to do that in ruby?
> and what feature of programing is this called?suppose
> var="world"
> I want to call a method called hello_world() using the variable var. How
> to do that in ruby?
> and what feature of programing is this called?
>
> to be clear:
> I want something like calling the method like :
> hello_+$var+()

You can do

send "hello_#{var}"

to dispatch to a method with a calculated name.  An alternative
approach is to do this:

my_methods = {
  'world' => lambda { puts "hello world" },
  'moon' => lambda { puts "hello moon" },
  'sun' => lambda { puts "hello sun" },
}

and then

my_methods[var].call

But in that case you'd rather use a method argument, of course:

def hello(x)
  puts "hello #{x}"
end

hello("world")

hello is a method (or rather function but Ruby does not have functions
which are not associated with a particular object).  x is the
argument.  "#{...}" is string interpolation.

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

-- You received this message because you are subscribed to the Google Groups 
ruby-talk-google group. To post to this group, send email to 
[email protected]. To unsubscribe from this group, send email 
to [email protected]. For more options, visit this 
group at https://groups.google.com/d/forum/ruby-talk-google?hl=en

Reply via email to