如何在不返回1的情况下将多个参数传递给同一个方法?

时间:2015-07-21 14:03:20

标签: ruby

def hello(world, bob)
  p hello "#{world}"
  p hello "#{bob}"
end

当我运行该代码时,它只能看到一个参数。

如何更改我的方法,以便我可以返回"Hello world""Hello bob"

3 个答案:

答案 0 :(得分:1)

您可以使用*args

获取无限量的输入
def hello(*args)

  args.each do |word|
    puts "Hello #{word}"
  end

end

如果你想在中间加上单词and,你就可以这样做。

def hello(*args)

  args = args.map do |word|
    "Hello #{word}"
  end

  puts args.join(" and ")
end

答案 1 :(得分:0)

BCS。在您的代码中,您有p hello "#{world}",此代码与hello("world")相同。 所以你用一个parram调用方法hello

def hello(world, bob)
  p "Hello #{world}"
  p "Hello #{bob}"
end

hello("World", "Bob")
# => Hello World
# => Hello Bob

如果你想要返回这两个字符串,你只需修改这样的方法

def hello(world, bob)
  return "Hello #{world}", "Hello #{bob}"
end

hello("World", "Bob")
# => [Hello World, Hello Bob]

OR

def hello(world, bob)
  ["Hello #{world}", "Hello #{bob}"]
end

hello("World", "Bob")
# => [Hello World, Hello Bob]

答案 2 :(得分:0)

此方法将返回Hello world& Hello bob

def hello(first, second)
  puts "Hello #{first}"
  puts "Hello #{second}"
end

hello("world", "bob")

=> Hello world
   Hello bob

Example