2016-02-27 15 views
-1

我想创建一个any_strings?方法,该方法接受一个数组,并在数组中存在字符串时返回true。例如:如何使用.any?方法在ruby中返回true,如果在数组中有一个字符串

a = [ 1, 2, 3, "string" ] 
any_strings?(a) 
#=> true 

b = [ 1, 2, 3, 4 ] 
any_strings?(b) 
#=> false 

定义any_strings?如下:

def any_strings?(a) 
end 

我是否应该使用is_a?方法,我很困惑你怎么使用2块方法

+2

什么是你的问题?您是否阅读过['any?'](http://ruby-doc.org/core-2.3.0/Enumerable.html#method-i-any-3F)方法的文档? –

回答

1

不应该太难。

def any_strings?(array) 
    array.any? { |element| element.is_a?(String) } 
end 
0

这是相当容易自由点式做:

def any_strings?(array) 
    array.any?(&String.method(:===)) 
end 
+0

我很好奇你是否会在生产代码中使用这个例子,或者你为了教育而显示它?在这种情况下,我发现......呃......指出......风格更易于阅读。 –

相关问题