В методе я использую i
и j
как временные переменные при вычислении других переменных. Какой идиоматический способ избавиться от i
и j
, когда они больше не нужны? Должен ли я использовать блоки для этой цели?
i = positions.first
while nucleotide_at_position(i-1) == nucleotide_at_position(i)
raise "Assumption violated" if i == 1
i -= 1
end
first_nucleotide_position = i
j = positions.last
while nucleotide_at_position(j+1) == nucleotide_at_position(j)
raise "Assumption violated" if j == sequence.length
j += 1
end
last_nucleotide_position = j
Предыстория: я хотел бы избавиться от i
и j
, когда они больше не нужны, чтобы они не использовались каким-либо другим кодом в методе. Дает моему коду меньше шансов ошибиться. Я не знаю название концепции - это "инкапсуляция"? Самые близкие понятия, которые я могу придумать, это (предупреждение: ссылки на TV Tropes - не посещать во время работы) Пистолет Чехова или YouHaveOutlivedYourUsefulness.
Другой альтернативой может быть размещение кода в их собственных методах, но это может ухудшить читабельность.