2016-11-06 67 views
0

我有一个返回一个数组,像这样的方法:使用if语句如何从Ruby中的if语句访问方法返回?

def foobar(foo, bar) 
    if foo != bar 
    [foo, bar] 
    end 
end 

现在,我想从我的代码中调用此方法。如何访问数组值而不必复制该方法?

if foobar("baz", "qux") 
    foo = foobar("baz", "qux") 
    puts foo[0], foo[1] 
end 

为了进一步澄清,我的意思是沿着$~线的东西,当你在一个if语句调用一个正则表达式匹配。

回答

1

Ruby有一个叫做“局部变量”的概念。您可以将对象分配给变量,然后引用这些变量:

if foo = foobar('baz', 'qux') 
    puts foo[0], foo[1] 
end 

注意Kernel#puts特殊情况Array参数和打印他们的新线元素,让你的代码就相当于更地道

if foo = foobar('baz', 'qux') 
    puts foo 
end 
+0

太好了!正是我需要的,但无法弄清楚。谢谢!我也意识到第二部分,但那不是我的重点,因为我的实际代码与这个简化版本有很大不同。 – Snowstormer

+0

@MattSchuchard:我应该测试平等对抗什么? OP的代码中没有平等测试。 –

+0

正确;误解了代码。 –