golang 配列の削除

May 16, 2023 am 11:03 AM

golang の配列は順序付けされたデータ構造であり、その長さは固定されており、一度作成されると長さを変更することはできません。したがって、golang での配列要素の削除操作は、スライスほど柔軟ではありません。

それでは、golang で配列内の要素を削除するにはどうすればよいでしょうか?まず、golang での配列の基本的な操作を理解する必要があります。

1. 配列の定義

golang では、次の方法で配列を定義できます:

var arr [5]int

このように、define 長さ 5 の int 配列が得られます。配列要素は次の方法で初期化できます:

arr := [5]int{1, 2, 3, 4, 5}

2. 配列トラバーサル

golang for ループを使用して配列を走査することができます。コード例は次のとおりです:

for i:=0; i

fmt.Println(arr[i])
ログイン後にコピー

}

は range キーワードも使用できます。コード例は次のとおりです:

for Index, value := range arr {

fmt.Println(index, value)
ログイン後にコピー

}

3. Get golang の配列の長さ

# 配列の長さは len() 関数を通じて取得できます。コード例は次のとおりです:

length := len(arr)

次に、配列内の要素を削除する方法を見てみましょう。

1. 配列要素をデフォルト値に設定する

golang では配列要素をデフォルト値に設定することができ、型に応じて初期値が決まります。したがって、配列から要素を削除する場合は、対応する要素をデフォルト値に設定するだけで済みます。たとえば、3 番目の要素を削除する場合のコード例は次のとおりです。

var arr [5]int = [5]int{1, 2, 3, 4, 5}
arr[2] = 0
for _, value := range arr {

fmt.Println(value)
ログイン後にコピー
ログイン後にコピー

}

これにより 3 番目の要素が削除され、その値は 0 となり、出力結果は次のようになります: 1 2 0 4 5.

しかし、この方法には問題があり、削除後の配列にはデフォルト値が残ってしまいます。配列内の要素が文字列またはカスタム型の場合、それらのデフォルト値は希望どおりではない可能性があります。

2. スライスを使用して削除を実現する

golang のスライスは、元の配列の長さを変更せずに要素を簡単に削除できる強力なデータ構造です。したがって、スライスを使用して配列から要素を削除できます。

具体的な手順は次のとおりです:

1. 配列をスライスに変換します

2. append() 関数を使用して、スライス内の削除する要素

3. スライスを配列に変換します

以下はサンプル コードです:

var arr [5]int = [5 ]int{1, 2, 3, 4, 5}
slice := arr[:]
slice = append(slice[:2], slide[3:]...)
for _ 、値 := 範囲スライス {

fmt.Println(value)
ログイン後にコピー
ログイン後にコピー

}

まず、配列をスライスに変換し、スライス内のインデックス 2 の要素 (つまり 3 番目の要素) を削除します。次に、スライスを配列に変換し直します。出力結果は 1 2 4 5 です。

配列要素をスライスして削除する方法は、要素を削除するだけでなく、要素の位置を変更したり、任意の数の要素を削除したりすることもできます。したがって、実際の開発において要素の追加、削除、変更を頻繁に行う必要がある場合には、配列ではなくスライスを使用することをお勧めします。

要約:

golang では、配列要素を削除する方法はスライスほど柔軟ではありませんが、デフォルト値またはスライスを使用して削除操作を実装できます。実際の開発では、実情に応じて適切な方法を選択することをお勧めします。

以上がgolang 配列の削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか? Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか? Mar 03, 2025 pm 05:17 PM

この記事では、Goのパッケージインポートメカニズム:名前付きインポート(例:インポート "fmt")および空白のインポート(例:_" fmt")について説明しています。 名前付きインポートはパッケージのコンテンツにアクセス可能になり、空白のインポートはtのみを実行します

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は? MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は? Mar 03, 2025 pm 05:18 PM

この記事では、MySQLクエリの結果をGO structスライスに効率的に変換することを詳しく説明しています。 データベース/SQLのスキャン方法を使用して、手動で解析することを避けて強調しています。 DBタグとロブを使用した構造フィールドマッピングのベストプラクティス

Beegoフレームワークのページ間で短期情報転送を実装する方法は? Beegoフレームワークのページ間で短期情報転送を実装する方法は? Mar 03, 2025 pm 05:22 PM

この記事では、Webアプリケーションでのページ間データ転送のためのBeegoのnewflash()関数について説明します。 newflash()を使用して、コントローラー間で一時的なメッセージ(成功、エラー、警告)を表示し、セッションメカニズムを活用することに焦点を当てています。 リミア

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? Mar 10, 2025 pm 05:38 PM

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? Mar 10, 2025 pm 03:20 PM

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

Go言語でファイルを便利に書く方法は? Go言語でファイルを便利に書く方法は? Mar 03, 2025 pm 05:15 PM

この記事では、goで効率的なファイルの書き込みを詳しく説明し、os.writefile(小さなファイルに適している)とos.openfileおよびbuffered write(大規模ファイルに最適)と比較します。 延期エラー処理、Deferを使用し、特定のエラーをチェックすることを強調します。

Goでユニットテストをどのように書きますか? Goでユニットテストをどのように書きますか? Mar 21, 2025 pm 06:34 PM

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

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? Mar 10, 2025 pm 05:36 PM

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています

See all articles