在一个方法中,我使用i
和j
作为临时变量,同时计算其他变量。一旦不再需要它,摆脱i
和j
的习惯用法是什么?我应该为此使用块吗?方法内临时变量的习惯ruby
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
一旦他们不再需要,使他们不使用该方法的任何其他代码。让我的代码更少出错的机会。我不知道这个概念的名称 - 是“封装”吗?我能想到的最接近的概念是(警告:链接到电视节目 - 不要在工作时访问)Chekhov'sGun或YouHaveOutlivedYourUsefulness。
另一种替代方法是将代码放入自己的方法中,但这可能会降低可读性。