done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。すべての記載は他に定める場合を除き個人的なものです。

Go言語でのSet(集合)型について

Pythonとかではset型が標準でありますが、Go言語には標準ではなさそうなので調べてみたら便利なライブラリが見つかったので簡単に紹介。

使い方は以下のような感じです。

package main

import (
    "fmt"

    "github.com/deckarep/golang-set"
)

func main() {
    list := []int{1, 2, 3, 4, 5, 2, 4, 6}
    set := mapset.NewSet()
    for _, v := range list {
        set.Add(v)
    }
    fmt.Println(set)               // Set{1, 2, 3, 4, 5, 6}
    fmt.Println(set.Cardinality()) // 6
}

最初set型の長さ(要素の数)の取り方がわからなかったのですが、Cardinalityで良さそうです。