append result not assigned to the same slice
84 message := signed.Message
85 newCredentials := make([]byte, executionToBLSPadding)
86 newCredentials[0] = params.BeaconConfig().ETH1AddressWithdrawalPrefixByte
87 val.WithdrawalCredentials = append(newCredentials, message.ToExecutionAddress...) 88 err = st.UpdateValidatorAtIndex(message.ValidatorIndex, val)
89 return st, err
90}
Description
The builtin function append
returns the updated slice after the append operation.
This resulting slice is usually assigned back to the same variable that contained
the original slice to which new values were appended.
Bad practice
x = []int{1, 3, 5}
append(x, 7) // returns the value []int{1, 3, 5, 7}. This is usually assigned back to x
x := []int{}
y := []int{}
x = append(y, 1) // possibly wrong
Recommended
x = []int{1, 3, 5}
x = append(x, 7)
x := []int{}
y := []int{}
y = append(y, 1) // append 1 to y