2016-11-06 48 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

正確;誤解了代碼。 –