【问题标题】:ruby regexp and enumerable method explainedruby 正则表达式和可枚举方法解释
【发布时间】:2021-02-22 13:08:23
【问题描述】:

谁能给我解释一下这行代码在做什么?

def count_sentences
  new_array = self.split(/[.?!]/).reject { |string| string.empty? }
  new_array.length
end

【问题讨论】:

    标签: ruby oop


    【解决方案1】:

    这是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

    就足够了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多