Почему Eclipse жалуется на запах «зависти к функциям» в моем коде?[закрыто]
-
19-09-2019 - |
Вопрос
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.size
и $1
.
Решение
Рик говорит вам, что, поскольку вы добавляете два свойства одного и того же класса, вычисление должно фактически принадлежать String
.При добавлении длин строк это конечно ерунда, но в вашем случае код может упростить, используя $&
(полная совпавшая строка):
input_text[$&.size..-1]
Не связан с StackOverflow