2012-10-29 43 views
1

兩個Ruby版本是:1.8.7(學校使用)與1.9.3(當前版本,我在我的系統上)。Ruby 1.8與列表元素比較1.9之間的區別

只是好奇1.9.3中的不同之處,導致以下不能正常工作。如果列表中的所有元素都相同,則函數輸出true,如果不完全相同,則輸出false

e.g. 
[1,1,1] => true 
[1,2,1] => false 

在Ruby 1.9.4,

odd_one_out_in_list?([1,1,1]) 
=> false #which is should output 'true' 

而在紅寶石1.8.7,

odd_one_out_in_list?([1,1,1]) 
=> true #which is good 

下面的邏輯看上去沒給我。 1.9.4有什麼不同?我已經檢查出: What is the difference between Ruby 1.8 and Ruby 1.9但我無法在那裏找到答案。

這裏是我的功能:

def odd_one_out_in_list?(list) 
    sorted_list = list.sort 
    if sorted_list[0] == sorted_list[list.length-1] 
    return true 
    else 
    return false 
    end 
end 
+2

沒有Ruby 1.9.4。 –

+4

另外,我不能重現這一點。 1.8.7和1.9.3爲您提供的輸入提供了相同的結果。 –

+0

爲什麼不只是返回比較結果呢? –

回答

0

儘量高清odd_one_out_in_list(名單); list.uniq.size == 1;結束。更簡單,可能更快