Подтвердить что ты не робот

golang append() оценивается, но не используется

func main(){
     var array [10]int
     sliceA := array[0:5]
     append(sliceA, 4)
     fmt.Println(sliceA)
}

Ошибка: append (sliceA, 4) оценивается, но не используется

Я не знаю почему? Операция добавления среза не запускается...

4b9b3361

Ответ 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" будет содержать ваш исходный фрагмент с добавленной частью.