配列内で一意の要素を実現する
Go では、配列は順序付けされたデータを格納するのに優れていますが、本質的に一意の値を保証するものではありません。このニーズに対処するために、代替アプローチを検討できます。
一意の文字列にマップを使用する
キーが要素を表すマップを使用して Go セットをエミュレートできます。値は bool などの単純な型にすることができます。これにはいくつかの利点があります。
マップを使用したセットの実装
例を示します:
package main import "fmt" func main() { m := make(map[string]bool) m["aaa"] = true m["bbb"] = true m["bbb"] = true m["ccc"] = true // Check if an element is present exists := m["somevalue"] fmt.Println(exists) }
マップによる順序の保持とスライス
の場合重要なのは、スライス (順序を維持するため) とマップ (重複を防ぐため) を組み合わせることができることです。ヘルパー関数はこれを簡素化します。
package main import "fmt" var m = make(map[string]bool) var a = []string{} func main() { add("aaa") add("bbb") add("bbb") add("ccc") fmt.Println(a) } func add(s string) { if m[s] { return } a = append(a, s) m[s] = true }
これらの手法を利用することで、順序が重要かどうかに関係なく、一意の文字列を効果的に保証する配列またはコレクションを作成できます。
以上がGo 配列内で一意の要素を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。