Go のスライスと配列の一意の要素
Go では、スライスまたは配列内で一意の要素を識別することは、特に初心者にとっては困難な場合があります。この記事では、座標のスライスに重複が存在する一般的なシナリオに対処し、一意のリストを作成するための効率的な解決策を提供します。
カスタム ロジックによる問題へのアプローチ
質問に示されているコードは、カスタム ロジックを使用してこの目標を達成しようとしています。ただし、いくつかの重大なエラーが含まれています。最初のループでは、訪問したスライスの各要素を一意のスライスのすべての要素と比較します。これにより、重複挿入が発生する可能性があります。さらに、比較ではリフレクションが使用されますが、訪問構造体はデフォルトで比較できるため不要です。
コードの修正バージョンには、訪問先スライスを反復処理し、各要素を一意のスライスと照合することが含まれます。一致するものが見つからない場合は、一意のスライスに追加する必要があります。これにより、それぞれの一意の座標が 1 回だけ追加されることが保証されます。
Go のマップ タイプをセットとして利用する
一意の要素を見つける別のアプローチには、Go のマップ タイプを使用することが含まれます。訪問構造体をキーとしてマップを初期化することで、マップ固有の一意性プロパティを利用できます。
訪問先スライスを反復処理する際に、各訪問構造体をマップに挿入します。マップでは一意のキーのみが許可されるため、重複は効果的に排除されます。一意の座標リストを取得するには、マップからキーを抽出するだけです。
結論
この記事では、Go スライス内の一意の要素を識別するための 2 つの効果的な方法を説明しました。配列: 手動による比較とセットとしてのマップの使用を含むカスタム ロジック。これらの手法を採用することで、Go 開発者はデータを効率的に処理し、有意義な洞察を抽出できます。
以上がGo のスライスと配列の一意の要素を識別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。