Go言語でスライスから要素を削除する方法
削除方法: 1. "slice object [N:]" ステートメントを使用して最初の N 要素を削除します; 2. "append(slice object[:i], slide object[i N:]. . .)" ステートメントを使用して、中央の N 要素を削除します。 3. "slice object [:len(slice object)-N]" ステートメントを使用して、最後の N 要素を削除します。
このチュートリアルの動作環境: Windows 10 システム、GO 1.11.2、Dell G3 コンピューター。
Go 言語はスライスから要素を削除します
Go 言語はスライス要素を削除するための特別な構文やインターフェイスを提供しません。削除するにはスライス自体の特性を使用する必要があります。削除する要素の位置により先頭から削除、途中から削除、末尾から削除の3通りがあり、このうちスライスの最後尾の要素を削除するのが最も速いです。
先頭から削除
先頭要素を削除すると、データ ポインタを直接移動できます:
a = []int{1, 2, 3} a = a[1:] // 删除开头1个元素 a = a[N:] // 删除开头N个元素
データ ポインタを移動しないこともできますが、次の要素を移動します。 データを先頭に移動するには、追加を使用してその場で完了します (いわゆるその場で完了とは、元のスライス データに対応するメモリ間隔で完了し、データに変更が生じないことを意味します)メモリ空間構造):
a = []int{1, 2, 3} a = append(a[:0], a[1:]...) // 删除开头1个元素 a = append(a[:0], a[N:]...) // 删除开头N个元素
先頭要素を削除するために copy() 関数を使用することもできます:
a = []int{1, 2, 3} a = a[:copy(a, a[1:])] // 删除开头1个元素 a = a[:copy(a, a[N:])] // 删除开头N个元素
中間位置から削除
#中央の要素を削除するには、残りの要素を同様に全体的に移動する必要があります。追加またはコピーでその場で完了できます:a = []int{1, 2, 3, ...} a = append(a[:i], a[i+1:]...) // 删除中间1个元素 a = append(a[:i], a[i+N:]...) // 删除中间N个元素 a = a[:i+copy(a[i:], a[i+1:])] // 删除中间1个元素 a = a[:i+copy(a[i:], a[i+N:])] // 删除中间N个元素
末尾から削除
a = []int{1, 2, 3} a = a[:len(a)-1] // 删除尾部1个元素 a = a[:len(a)-N] // 删除尾部N个元素
[例] スライスの指定位置の要素を削除します。
package main import "fmt" func main() { seq := []string{"a", "b", "c", "d", "e"} // 指定删除位置 index := 2 // 查看删除位置之前的元素和之后的元素 fmt.Println(seq[:index], seq[index+1:]) // 将删除点前后的元素连接起来 seq = append(seq[:index], seq[index+1:]...) fmt.Println(seq) }
[a b] [d e] [a b d e]
- 行 1 は整数スライスを宣言し、A を保存しますa から e までの文字列。
- 行 4 では、デモンストレーションと説明の便宜上、インデックス変数を使用して、削除する必要がある要素の位置を保存します。
- 7 行目、seq[:index] は削除された要素の前半を表し、値は [1 2]、seq[index 1:] は削除された要素を表します 後半の値は [4 5] です。
- 10 行目では、append() 関数を使用して 2 つのスライスを接続します。
- 12行目は接続された新しいスライスを出力していますが、この時点でインデックス2の要素は削除されています。
以上がGo言語でスライスから要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

ポインター構文とviperライブラリの使用における問題への取り組みGO言語でプログラミングするとき、特にポインターの構文と使用を理解することが重要です...
