Go 言語でスライス要素を削除するには、append 関数 (推奨されません)、copy 関数、および基になる配列の手動変更の 3 つの方法があります。 append 関数は末尾の要素を削除し、copy 関数は中間の要素を削除し、基になる配列を手動で変更して要素を直接割り当てたり削除したりできます。
Go 言語では、スライスは基になる要素を指す参照型です。配列。スライスから要素を削除する場合は、スライスによって参照される基になる配列を更新する必要があります。
append
Function (推奨されません)
append
Function同時に削除して要素を追加します。スライスの末尾要素を削除する必要がある場合は、次の構文を使用できます:
slice = slice[:len(slice)-1] // 删除最后一个元素
copy
Function
copy
この関数は、スライスの一部を別のスライスにコピーできます。中央の要素を削除する必要がある場合は、削除する要素の後の部分を新しいスライスにコピーできます。
index := 2 slice = append(slice[:index], slice[index+1:]...) // 删除索引为index的元素
直接割り当て
スライスの基になる配列を、削除する要素を含まない新しい配列に直接割り当てることができます。
index := 2 slice[index] = slice[len(slice)-1] // 将要删除元素移动到最后 slice = slice[:len(slice)-1] // 删除最后一个元素
スライスを取得します。スライス要素を削除する方法を示す例として整数が含まれています:
package main import "fmt" func main() { slice := []int{1, 2, 3, 4, 5} // 使用append函数删除最后一个元素 slice = slice[:len(slice)-1] fmt.Println(slice) // 输出:[1 2 3 4] // 使用copy函数删除中间元素 index := 2 slice = append(slice[:index], slice[index+1:]...) fmt.Println(slice) // 输出:[1 2 4 5] // 使用直接赋值删除元素 index = 1 slice[index] = slice[len(slice)-1] slice = slice[:len(slice)-1] fmt.Println(slice) // 输出:[1 3 4 5] }
以上がGo言語を使ってスライス内の要素を削除する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。