Ich habe den folgenden Code:entfernt letztes Element in der Scheibe
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)
}
Die Aussage in der if
Aussage ist die beliebteste Art und Weise in einem Stück ein Element ersetzt pro diesen answer. Das Löschen des letzten Elements aufgrund von i+1
schlägt fehl. Wenn eine Übereinstimmung in dem letzten Element gefunden wird, ist i+1
außerhalb der Grenzen. Gibt es eine bessere Möglichkeit, Elemente zu ersetzen, die die letzten Elemente berücksichtigen?
Die idiomatische Art zu schreiben 'für {if i == len (nums) {break}' ist 'für i