【发布时间】:2021-02-22 13:08:23
【问题描述】:
谁能给我解释一下这行代码在做什么?
def count_sentences
new_array = self.split(/[.?!]/).reject { |string| string.empty? }
new_array.length
end
【问题讨论】:
谁能给我解释一下这行代码在做什么?
def count_sentences
new_array = self.split(/[.?!]/).reject { |string| string.empty? }
new_array.length
end
【问题讨论】:
这是String 类的补丁。它旨在让您计算字符串中的句子。
'That is a cat. This is a dog'.count_sentences
>= 2
它是如何工作的?
def count_sentences
new_array = self.split(/[.?!]/).reject {|string| string.empty? }
return new_array.length
end
self.split(/[.?!]/) 将self(调用该方法的字符串)拆分为单独的字符串,用句点、问号或感叹号分隔它们。所以基本上是一组句子。
.reject {|string| string.empty? } 删除数组中所有为空的元素......所以“你好......”只是一句话,而不是四句话。可以更经济地写成.reject(&:empty?)
最后,我们用return new_array.length 返回数组中的字符串计数。由于它是方法中的最后一行,因此您实际上并不需要显式的“返回”...只需执行 new_array.length
【讨论】: