Go言語の標準ライブラリには他言語のset型のようなものは存在しませんが、単純なものでよければ組み込みのmapをsetのように使えます。 x := map[string]struct{}{} // string型のset相当のmapを作成 x["foobar"] = struct{}{} // "foobar" を登録 _, ok := x["foobar"] // ok == true。集合に値が含まれる _, ok = x["barbaz"] // ok == false。集合に値は含まれない Mapのキーには比較演算子 (== と !=) が定義されている型が利用できます *1(comparable*2 に近いが、mapやsliceはキーにできないのでcomparableとは異なる)。 Mapのvalueの型に空struct (struct{}) を使っているので、valueのために