[前書き]
Go 言語のスライスは非常に一般的なデータ構造であり、動的配列操作によく使用されます。使用中は、スライスの追加、削除、確認、変更などの操作を実行する必要があることがよくあります。Go 言語には、これらの操作を実装するための組み込みメソッドがいくつか用意されています。この記事では、Go言語におけるスライスの基本的な使い方と一般的な方法を詳しく紹介します。
[1. スライスの定義]
スライスは可変長シーケンスであり、次のように定義されます。
var arr []type
ここでの型は、 int 、紐などmake() メソッドを使用してスライスを直接作成することもできます。
arr := make([]type, len, cap)
ここで、len はスライスの長さを表し、cap はスライスの容量を表します。ここで注意が必要なのは、スライスの容量は長さ以上であることです。
[2. スライスの基本操作]
2.1 スライスの走査
range キーワードを使用してスライスを走査できます。コード例は次のとおりです:
arr := []string{"hello", "world", "go"} for index, value := range arr { fmt.Printf("index:%d, value:%s ", index, value) }
出力 結果は次のようになります:
index:0, value:hello index:1, value:world index:2, value:go
2.2 スライスの追加
要素をスライスに追加するには、以下に示すように、append() メソッドを使用できます。 ##ここで、append() メソッドを使用した後、その戻り値をスライスに再割り当てする必要があることに注意してください。
2.3 スライスの削除
スライス内の要素を削除するには、以下に示すように、組み込みの delete() メソッドを使用できます。
var arr []string arr = append(arr, "hello")
ここでの構文は次のとおりです。
arr[:1]: 0 から 1 までの要素 (1 を除く) を表します、つまり、「hello」;2.4 スライスの変更
以下に示すように、添え字を使用して値を直接割り当てることにより、スライス内の要素を変更します。
arr := []string{"hello", "world", "go"} arr = append(arr[:1], arr[2:]...)
出力結果は次のとおりです。
arr := []string{"hello", "world", "go"} arr[1] = "Golang" fmt.Println(arr)
[3. 一般的に使用されるスライス方法]
一般的に使用されるスライス方法をいくつか示します:
3.1 len() メソッド
len() メソッドは次のとおりです。スライスの取得に使用されます。スライスの長さのコード例は次のとおりです。
[hello Golang go]
出力結果は次のとおりです。
arr := []string{"hello", "world", "go"} fmt.Println(len(arr))
3.2 cap() メソッド
cap( ) メソッドを使用してスライスの容量を取得します。コード例は次のとおりです。
3
出力結果は次のとおりです。
arr := make([]string, 3, 5) fmt.Println(cap(arr))
3.3 copy() メソッド
copy() メソッドは、あるスライスの値を別のスライスにコピーできます。コード例は次のとおりです。
5
出力結果は次のとおりです。
var arr1 = []string{"apple", "banana", "orange"} var arr2 = make([]string, 3) copy(arr2, arr1) fmt.Println(arr2)
3.4 append() メソッド
append() メソッドはスライスに要素を追加するために使用されます。コード例は次のとおりです:
[apple banana orange]
出力結果は次のとおりです:
arr := []string{"hello", "world", "go"} arr = append(arr, "Golang") fmt.Println(arr)
3.5 append() メソッドと拡張
スライスの容量が新しい要素を収容するのに十分でない場合、append() メソッドは自動的に容量を拡張します。拡張条件は次のとおりです。新しい要素が 1024 未満の場合、スライスの容量は 2 倍になります。
新しい要素の長さが 1024 以上の場合、容量が十分になるまで拡張するたびに元の容量が 1 /4 ずつ増加します。
[hello world go Golang]
arr := []string{"hello", "world", "go"} arr = append(arr, "Golang", "Python") fmt.Println(arr)
以上がgolang スライスメソッド Opの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。