Append() を Go 言語で使用すると、スライスに要素を動的に追加および削除できます。要素構文「slice = append(slice,elem1,elem2)」を追加しました。要素の削除は 2 つのタイプに分類できます: 1. インデックスにある要素の削除、構文 "slice=append(slice[:i],slice[i 1:]...)"; 2. 指定されたインデックス間の要素の削除、構文構文「スライス=追加(スライス[:i],スライス[i2:]...)」。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
要素をスライスに追加する
Go 言語では、append() を使用して要素をスライスに動的に追加できます。
slice = append(slice,elem1,elem2)
append角括弧内では、最初のパラメータ スライスの後に複数のパラメータを追加できます。
package main import "fmt" //切片进阶操作 func main(){ //append()为切片追加元素 s1 := []string {"火鸡面","辛拉面","汤达人"} fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n",s1,len(s1),cap(s1)) //调用append函数必须用原来的切片变量接收返回值 s1 = append(s1,"小当家") //append追加元素,原来的底层数组装不下的时候,Go就会创建新的底层数组来保存这个切片 fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n",s1,len(s1),cap(s1))//cap增加两倍 }
スライスすると要素が削除されます
Go 言語のスライスでは要素も削除されますappend 関数を使用してこれを間接的に実現できます。
#インデックスインデックスの要素を削除します
slice = append(slice[:index], slice[index+1:]...)
説明 | |
---|---|
削除する要素のスライス。 | #index |
削除するインデックス。 | #インデックスインデックスからインデックス2まで要素を削除します |
##パラメータ
説明
slice | |
---|---|
#index | 削除する開始インデックス。 |
#index2 | 削除する終了インデックス。|
package main import ( "fmt" ) func main() { //使用append函数,实现删除切片 index 处的元素 var slice = []string{"aa", "bb", "cc"} fmt.Println("slice =", slice) slice = append(slice[:1], slice[2:]...) fmt.Println("slice =", slice) } ログイン後にコピー | 例 2: 次を使用します。 append 関数は、スライス インデックス 1 からインデックス 3 までの要素の削除を実装します |