#この記事の動作環境: Windows10 システム、Go 1.11.2、thinkpad t480 コンピューター。 関連する推奨事項: "違い: 1. スライスはポインタ型で、配列は値型です; 2. 配列の長さは固定されていますが、スライスはそうではありません (スライスは動的配列と見なすことができます); 3. スライスには 1 つ多くの容量がありますthan arrays (cap) 属性; 4. スライスの最下層は配列です。
goチュートリアル"
次のコードは何を出力しますか?コメントを削除すると何が出力されるでしょうか?package main import ( "fmt" ) func main() { a := [2]int{5, 6} b := [2]int{5, 6} if a == b { fmt.Println("equal") } else { fmt.Println("not equal") } /* if a[:] == b[:] { fmt.Println("equal") } else { fmt.Println("not equal") } */ }出力:
equalコメントプロンプトを削除:
invalid operation: a[:] == b[:] (slice can only be compared to nil)
説明:
go language● スライスはポインタ型、配列は値型です # 配列の長さは固定されていますが、スライスは固定されていません (スライスは動的配列です)##● そこにあります配列よりもスライスの方が多い 属性: 容量 (キャップ)
# スライスの最下層は配列です
#したがって、a と b は配列の型を定義し、配列の比較は同じですただし、a[:]、b[:]はスライスであり、スライス間の等価判定はできず、nilでしか判定できませんプログラミング関連の知識については、プログラミング教育
をご覧ください。 !以上がGo言語の配列とスライスの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。