func main(){
var array [10]int
sliceA := array[0:5]
append(sliceA, 4)
fmt.Println(sliceA)
}
エラー:append(sliceA、4)評価されましたが使用されていません
理由がわかりませんか?スライスの追加操作は実行されません...
参照: スライスの追加とコピー
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]
役に立てば幸いです。
sliceA = append(sliceA、4)appendは、1つ以上の新しい値を含むスライスを返します。新しいスライス値を取得する可能性があるため、appendからの戻り値を受け入れる必要があることに注意してください。
あなたはこれを試すことができます:
sliceA = append(sliceA, 4)
組み込み関数append([]type, ...type)
は、入力配列/スライスが単なるソースである一方で、希望する値に割り当てられるタイプの配列/スライスを返します。単純に、outputSlice = append(sourceSlice, appendedValue)
Goごとのドキュメント:
Appendの結果の値は、元のスライスのすべての要素と提供された値を含むスライスです。
したがって、「append」の戻り値には、元のスライスに追加部分が含まれます。