golangの配列とスライスの違い
アレイ:array1:= [3] int {1,2,3}
スライス:array2:= [] int {1,2,3}この追加
スライスのみを直接追加できますres:= append(array2,10)
ただし、スライスがこのように
array2 [3] = 20を割り当てたい場合、メモリスペースが割り当てられていないためエラーが報告されるため、この時点でmakeが必要です。
ARRAY3:=メイク([] int型、10)
ARRAY3 [3] = 20古い値を割り当てることができますので。
という注意
ARRAY3:=メイク([] int型、10)
ARRAY3 [11] = 20これは大丈夫ですか?エラーが報告されます。これは、定義された長さが10であるため、11番目の位置が指定されたときにエラーが報告されます。
このときどうすればよいですか?このとき、追加が必要であり、追加は自動的に展開されます。
配列が等しいかどうかを判断するには、
if shu1 == shus2
を使用します。スライスはreflect.DeepEqual(slice1、slice2)を使用する必要があります。
概要:1。スライスのみ追加できます
2.配列は直接割り当てることができますが、指定した長さ内で割り当てる必要があり、範囲を超えるとエラーが報告され
ます。3。スライスを直接追加できますが、作成後に割り当てる必要があります。スライスのサイズを指定したら、割り当てます。範囲を超えることはできません。追加を使用してください
注:配列は値のコピーであり、スライスとマップは参照によって渡されます。再度コピーを作成する場合は、copyを使用してください
概要:配列は値のコピーです。スライスは同じ配列を指すアドレスを参照しますが、コピー機能を使用する場合は、配列を指す代わりにスライスを再度コピーすることと同じ
です:= make(map [int] string 、8)2番目のパラメーターは容量を表し、前のスライスの2番目の要素は長さ、3番目のパラメーターは容量です
fmt.Println(len(a))// correct
fmt.Println(cap(a))//エラー
マップキャップを直接使用して容量を取得することはできません