で最後の要素を削除します。私は次のコードを持っているスライス
func TestRemoveElement(t *testing.T) {
nums := []int{3, 2, 2, 3}
result := removeElement(nums, 3)
if result != 2 {
t.Errorf("Expected 2, but it was %d instead.", result)
}
}
func removeElement(nums []int, val int) int {
for i, v := range nums {
if v == val {
nums = append(nums[:i], nums[i+1:]...)
}
}
return len(nums)
}
声明if
文の中にこのanswerあたりのスライス内の要素を交換する最も一般的な方法です。しかしこれはi+1
のために最後の要素を削除できません。つまり、最後の要素で一致が見つかった場合、i+1
は範囲外です。最後の要素を考慮する要素を置き換えるより良い方法は何ですか?
for {if i == len(nums){break} 'を書く慣用句は' for i