我们可以在.include中包含范围吗?红宝石

时间:2014-02-06 17:24:51

标签: ruby range

我只是想找出数组中是否包含任何字符。所以我只是尝试在包含函数中包含范围,这似乎不起作用。

if @array.include?('a'..'z') then
  puts "Doesnt have Permutation"
else
  puts "Have permutation"
end

2 个答案:

答案 0 :(得分:6)

您可能需要使用Enumerable#grep

这里有一些关于使用#grep

的例子
['w', '-', 12].grep('a'..'z') # => ["w"]
[ 4 , :a, '^'].grep('a'..'z') # => []
['w', '-', 'e'].grep('a'..'z') # => ["w", "e"]

以下是使用#grep的修改后的代码:

ary = ['w', '-', 12]
if ary.grep('a'..'z').empty?
  puts "Doesnt have Permutation"
else
  puts "Have permutation"
end    
# >> Have permutation

答案 1 :(得分:1)

你想要

@array.any? { |c| ('a'..'z').include?(c) }

如果您忘记了grep