English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Goプログラミング言語の配列は、他のプログラミング言語と非常に似ています。プログラムでは、学生のスコアリストなどの同じタイプのデータを一組保存する必要があることがあります。このような種類の集合は、プログラム内に配列で保存されます。配列は固定長のシーケンスで、同じタイプの要素をメモリに保存するために使用されます。これらの固定長配列は、Go言語のSlice(スライス)のように人気がないためです。
配列では、0個以上の要素を保存することができます。[]索引演算子を使用して、配列の要素にインデックスを付けると、これは最初の要素のインデックスがarray [0]、最後の要素のインデックスがarray [len(array)-1]}}。
Go言語では、配列は以下の2つの方法で作成されます:
varキーワードの使用:Go言語では、名前、サイズ、要素を持つ特定のタイプのvarキーワードを使用して配列を作成します。
文法:
Var array_name[length]Type または var array_name[length]Typle{item1, item2, item3, ...itemN}
重要事項:
Go言語では、配列は可変であり、したがって割り当ての左側でarray [index]文法を使用して特定のインデックスに配列の要素を設定できます。
Var array_name[index] = element[object Object]
インデックス値を使用したり、forループを使用して配列の要素にアクセスできます。
Go言語では、配列のタイプは一次元です。
配列の長さは固定で変更できません。
重複する要素を配列に保存できます。
//varキーワードを使用して配列を作成 //そのインデックス値を使用して配列にアクセス package main import "fmt" func main() { //varキーワードを使用して文字列型の配列を作成 var myarr [3]string //使用する索引値で要素を割り当て myarr[0] = "GFG" myarr[1] = "ja.oldtoolbag.com" myarr[2] = "w3codebox" //配列の要素にアクセス //使用する索引値 fmt.Println("配列の要素:") fmt.Println("要素 1: ", myarr[0]) fmt.Println("要素 2: ", myarr[1)] fmt.Println("要素 3: ", myarr[2)] {}
出力:
配列の要素: 要素 1: GFG 要素 2: ja.oldtoolbag.com 要素 3: w3codebox
簡略宣言の使用:Go言語では、配列も簡略宣言を使用して宣言できます。これは上記の宣言よりも柔軟です。
文法:
array_name:= [length]Type{item1, item2, item3,...itemN}[object Object]
//簡略宣言を使用する配列 //forループを使用して配列にアクセス package main import "fmt" func main() { //配列の簡略宣言 arr := [4]string{"w3codebox", "gfg", "w3codeboxs1231", "ja.oldtoolbag.com"} //アクセスする要素、forループの配列を使用 fmt.Println("配列の要素:") for i := 0; i < 3; i++ for x := 0; x < len(myarray); x fmt.Println(arr[i]) {} {}
出力:
配列の要素: w3codebox gfg w3codeboxs1231
私たちは一次元の配列は知っていますが、多次元配列を生成することもできます。多次元配列は同じタイプの配列の配列です。Go言語では以下の文法で多次元配列を生成できます:
Array_name[Length]1][Length2]..[LengthN]Type
以下のように使用できますVarキーワードを使用または簡略的な宣言を使用以下のようにマルチレベルの配列を作成する方法を示します。
注意:マルチレベルの配列では、ユーザーが特定のセルを初期化していない場合、コンパイラは自動的にそれを0で初期化します。Golangには未初期化の概念はありません。
package main import "fmt" func main() { //作成および初期化 //二次元配列 //簡略的な宣言を使用 //ここでは、カンマ(,)を使用する必要があります arr := [3][3]string{{"C#", "C", "Python"}, {"Java", "Scala", "Perl"}, {"C++", "Go", "HTML"}} //アクセスする値 //配列はforループを使用してアクセス fmt.Println("配列の要素 1)) for x := 0; x < 3; x++ for x := 0; x < len(myarray); x for y := 0; y < 3; y++ for x := 0; x < len(myarray); x fmt.Println(arr[x][y]) {} {} //二次元配列を作成 //varキーワードを使用する配列 //を初期化 //インデックスを使用する次元の配列 var arr1 ][2][2]int arr1[0][0] = 100 arr1[0][1] = 200 arr1][1[0] = 300 arr1][1][1] = 400 //配列の値にアクセス fmt.Println("配列の要素 2)) for p := 0; p < 2; p++ for x := 0; x < len(myarray); x for q := 0; q < 2; q++ for x := 0; x < len(myarray); x fmt.Println(arr1[p][q]) {} {} {}
出力:
配列の要素 1 C# C Python Java Scala Perl C++ Go HTML 配列の要素 2 100 200 300 400
配列中で明示的に初期化されていない場合、この配列のデフォルト値は0。
package main import "fmt" func main() { //int型の配列を作成し、2つの要素を格納 //ここでは、配列を初期化しておらず、そのため配列の値は0です var myarr[2]int fmt.Println("配列要素 :", myarr) {}
出力:
配列要素 : [0 0]
配列中では、以下のように使用できますを使用してlen()メソッド取得配列の長さ,以下のように:
package main import "fmt" func main() { //配列を作成 //簡略的な宣言を使用 arr1 :=[3int{9, 7, 6{} arr2 int{[...]}9, 7, 6, 4, 5, 3, 2, 4{} arr3 :=[3int{9, 3, 5{} // len方法を使用して配列の大きさを計算 fmt.Println("配列1の長さは:", len(arr1)) fmt.Println("配列2の長さは:", len(arr2)) fmt.Println("配列3の長さは:", len(arr3)) {}
出力:
配列1の長さは: 3 配列2の長さは: 8 配列3の長さは: 3
配列の長さは:省略号「 ...」長さ位置に見える場合、配列の長さは初期化された要素で決定されます。以下の例を参照してください:
//配列中の省略号の使用方法 package main import "fmt" func main() { //既定の大きさの配列を作成 //要素の数に基づいて //省略号の使用 myarray := [...]string{"GFG", "gfg", "w3codeboxs", "ja.oldtoolbag.com", "w"3codebox.com", "w" codebox"} //fmt.Println("配列の要素: ", myarray) //配列の長さ //によって決定されます len()メソッドを使用して {}
出力:
fmt.Println("配列の長さは:", len(myarray))3配列の要素: [GFG gfg w3codeboxs ja.oldtoolbag.com w codebox] 5
配列の長さは:配列内で、を使用して array。以下の例を示します:
//要素の範囲内で反復します package main import "fmt" func main() { //配列を作成します。したがって、配列を新しい変数に割り当てるとき、新しい変数で行われる変更は元の配列に影響を与えません。以下の例を示します: //省略記号を使用して 配列を反復する方法29, 79, 49, 39, 20, 49, 48, 49{} //myarray := [...]int{ forループを使用して配列を反復します++ for x := 0; x < len(myarray); x { {} {}
出力:
29 79 49 39 20 49 48 49
fmt.Printf("%d\n", myarray[x])Go言語では、配列の値のタイプは参照型ではありません
package main import "fmt" func main() { //配列を作成します。したがって、配列を新しい変数に割り当てるとき、新しい変数で行われる変更は元の配列に影響を与えません。以下の例を示します: //省略記号を使用して my_array := [...]int{100, 200, 300, 400, 500} fmt.Println("元の配列(変更前):", my_array) //新しい変数を作成します //my_arrayを使用して初期化します new_array := my_array fmt.Println("新しい配列(変更前):", new_array) //インデックス0の値を変更します500 new_array[0] = 500 fmt.Println("新しい配列(変更後):", new_array) fmt.Println("元の配列(変更後):", my_array) {}
出力:
元の配列(変更前): [100 200 300 400 500] 新しい配列(変更前): [100 200 300 400 500] 新しい配列(変更後): [500 200 300 400 500] 元の配列(変更後): [100 200 300 400 500]
配列内で要素のタイプが比較可能な場合、配列のタイプも比較可能です。したがって、==演算子で直接配列を比較できます。以下の例を示します:
//配列を比較する方法 package main import "fmt" func main() { arr1 :=[3int{9, 7, 6{} arr2 int{[...]}9, 7, 6{} arr3 :=[3int{9, 5, 3{} //配列を==演算子で比較する場合 fmt.Println(arr1 ==arr2) fmt.Println(arr2 ==arr3) fmt.Println(arr1 ==arr3) //これは誤りを返しますなぜなら // arr1とarr4のタイプが一致しません /* arr4:=[4int{9,7,6{} fmt.Println(arr1==arr4) */ {}
出力:
true false false