我不明白这怎么行不通。该程序应该在类 Array 中采用第二个实例方法并返回数组中的第二个对象
class Array
def second(*arr)
arr.length <= 1 ? nil : arr[1]
end
end
#Test cases
Test.assert_equals(Array([1, 2, 3]), 2,) #Getting nil
Test.assert_equals(Array([]), nil) #passes
Test.assert_equals(Array([1]), nil) #passes
我做错了什么?如果我删除类 Array 并在第二个测试它工作正常?
最佳答案
为什么要使用*arr
?如果你正在修补 Array
,那么使用 self
:
class Array
def second
self.length <= 1 ? nil : self[1]
end
end
p [1,2,3].second #=> 2
p [1].second #=> nil
p [].second #=> nil
关于ruby - 找到数组的第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877729/