0

Eclipse (RedRails)在以下代码中抱怨“功能嫉妒”:

if input_text =~ /^(---\s*\n.*?\n?)(---.*?)/m
  content_text = input_text[($1.size + $2.size)..-1] # warning in $1

  header = YAML.load($1)

  @content = content_text.strip()
  @title = header["title"]
end

我的理解是我可以安全地忽略这个警告。但我在徘徊为什么会产生这个警告。我无法理解如何为$1.sizeand提取方法$1

4

1 回答 1

2

Reek 告诉你,因为你要添加同一个类的两个属性,所以计算实际上应该属于String. 添加字符串长度时,这当然是无稽之谈,但在您的情况下,可以使用$&(完整匹配的字符串)简化代码:

input_text[$&.size..-1]
于 2009-07-24T15:38:24.227 回答