在一個方法中,我使用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。
另一種替代方法是將代碼放入自己的方法中,但這可能會降低可讀性。