golang 配列を削除する
Go 言語では、配列は固定長のデータ構造であり、一度作成すると長さを変更することはできません。しかし場合によっては、配列内の要素を動的に増減する必要がある場合があります。実際、Go 言語には配列から要素を削除するメソッドがいくつか用意されており、この記事ではそのうちのいくつかを紹介します。
1. スライスの使い方
スライスとはGo言語における動的配列であり、配列を切り取ったものです。スライスの基礎となる層は配列ですが、その長さは固定されておらず、要素は必要に応じて動的に追加または削減できます。したがって、スライスを使用して配列から要素を削除するのが一般的なアプローチです。
スライスの組み込み関数 append()
を使用して、配列から要素を削除できます。配列 arr
の idx
番目の要素を削除するとします。まず配列を 2 つの部分にスライスし、配列から削除する要素を取り出してから、要素を結合します。 2 つの部分を作成し、最後に結果を元の配列に保存します。
以下はサンプル コードです:
func removeItem(arr []int, idx int) []int { return append(arr[:idx], arr[idx+1:]...) } arr := []int{1, 2, 3, 4, 5} idx := 2 arr = removeItem(arr, idx) fmt.Println(arr) // [1 2 4 5]
このコードでは、組み込み関数 append()
を使用して idx
を削除します。スライスからの要素を削除します。削除後、新しいスライスが返されます。このスライスは、元の配列 arr
を 2 つの部分、つまり arr[:idx]
と arr[ idx 1 :]
。次に、2 つの部分が append()
関数を通じて接続され、最終結果は、元の配列から要素を削除した後の新しい配列になります。
2. 空白文字を使用する
配列要素を削除する別の方法は、Go 言語で空白文字を使用することです。空白文字は実際には、関数から返された値を受け取ったときに実際にその戻り値を使用する必要がないことを示すために使用される特別な識別子です。配列内で空白文字を使用すると、配列内の要素を空に設定して削除の効果を得ることができます。
例は次のとおりです。
arr := []int{1, 2, 3, 4, 5} idx := 2 arr[idx] = arr[len(arr)-1] arr[len(arr)-1] = 0 arr = arr[:len(arr)-1] fmt.Println(arr) // [1 2 4 5]
ここで空白を使用します 0
インデックス len(arr)-1
を持つ要素を空に設定します。この空の要素は配列の末尾から削除され、それによって要素を削除した効果が得られます。
このメソッドでは要素を削除できますが、配列の長さは変更されないため、後続の操作では特に注意する必要があることに注意してください。
3. コピー関数を使用する
Go 言語の組み込み関数copy()
あるスライスを別のスライスにコピーしたり、スライスの一部をコピーしたりできます。配列。同じ配列の別の部分に。したがって、copy()
関数を使用して配列から要素を削除できます。
例は次のとおりです:
arr := []int{1, 2, 3, 4, 5} idx := 2 copy(arr[idx:], arr[idx+1:]) arr[len(arr)-1] = 0 arr = arr[:len(arr)-1] fmt.Println(arr) // [1 2 4 5]
このコードでは、まず copy()
関数を使用して、arr[idx 1 から始まる要素を削除します。 :]
これを arr[idx:]
にコピーして、idx
要素を削除します。次に、配列の最後の要素を空に設定し、最後にスライスによって空の要素を削除します。
配列は参照型ではなく値型であるため、スライスを使用して配列をコピーし、変更後に結果を元の配列に保存する必要があることに注意してください。
4. ループを使用する
配列要素を削除する最後の方法は、ループを使用することです。要素をループ内で後方に移動することで削除できます。
例は次のとおりです。
arr := []int{1, 2, 3, 4, 5} idx := 2 for i := idx + 1; i < len(arr); i++ { arr[i-1] = arr[i] } arr = arr[:len(arr)-1] fmt.Println(arr) // [1 2 4 5]
ここでは、削除する必要がある要素の後の各要素をループし、1 つ前に移動して、最後に冗長な要素を削除します。この方法は面倒ですが、非常に実用的でもあります。
概要
配列要素の削除は Go 言語の基本的な操作です。Go 言語には、この操作を実装するための便利で効率的なメソッドがさまざまに用意されています。スライス、空白、コピー関数、またはループを使用して、配列から要素を簡単に削除できます。現実の状況に応じて、目的を達成するために最も適切な方法を選択できます。
以上がgolang 配列を削除するの詳細内容です。詳細については、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)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

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

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および

この記事では、コードのランタイム操作に使用されるGoの反射パッケージについて説明します。シリアル化、一般的なプログラミングなどに有益です。実行やメモリの使用量の増加、賢明な使用と最高のアドバイスなどのパフォーマンスコストについて警告します

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。
