golang append() оценивается, но не используется
func main(){
var array [10]int
sliceA := array[0:5]
append(sliceA, 4)
fmt.Println(sliceA)
}
Ошибка: append (sliceA, 4) оценивается, но не используется
Я не знаю почему? Операция добавления среза не запускается...
Ответы
Ответ 1
См. Добавление и копирование фрагментов
В Go аргументы передаются по значению.
Типичный append
использование является:
a = append(a, x)
Вам нужно написать:
func main(){
var array [10]int
sliceA := array[0:5]
// append(sliceA, 4) // discard
sliceA = append(sliceA, 4) // keep
fmt.Println(sliceA)
}
Выход:
[0 0 0 0 0 4]
Я надеюсь, что это помогает.
Ответ 2
sliceA = append (sliceA, 4) append возвращает срез, содержащий одно или несколько новых значений. Обратите внимание, что нам нужно принять возвращаемое значение из append, так как мы можем получить новое значение среза.
Ответ 3
вы можете попробовать следующее:
sliceA = append(sliceA, 4)
встроенная функция append([]type,...type)
возвращает массив /slice типа, который должен быть присвоен требуемому значению, в то время как входной массив/срез является только источником. Просто outputSlice = append(sourceSlice, appendedValue)
Ответ 4
Документы Go To Go:
Результирующее значение append - это срез, содержащий все элементы исходного среза плюс предоставленные значения.
Таким образом, возвращаемое значение "append" будет содержать ваш исходный фрагмент с добавленной частью.