у меня есть:Как подсчитать истинные значения, возвращаемые итерацией массива с условием?
def distance(str1, str2)
str1.chars.each_index do |index|
difference?(str1, str2, index)
end
end
def difference?(str1, str2, index)
if !str1.chars[index].nil? && !str2.chars[index].nil?
str1.chars[index] != str2.chars[index]
end
end
Для каждого элемента в str1.chars
, которые отличаются от элементов в str2.chars
с теми же index
, difference?
возвращается true
.
Как я могу подсчитать, сколько раз он возвращал true
в distance
?
я использовал что-то вроде этого:
def distance(str1, str2)
distance = 0
str1.chars.each_index do |index|
if difference?(str1, str2, index)
distance += 1
end
end
distance
end
Есть ли лучший способ сделать это? Может быть, count
с блоком - это ответ, но я не могу понять это.
Мне нравится это решение, но можете ли вы объяснить, почему существует '_' внутри' | _, index | '? – narspeth