Go でバージョン比較

at 2016-08-02 00:00 (UTC)

9.4 とか 0.10.1 みたいなバージョンを比較したい時がある。そんな時は hashicorp/go-version: A Go (golang) library for parsing and verifying versions and version constraints. を使う。

package main

import (
    "fmt"
    "os"

    "github.com/hashicorp/go-version"
)

func main() {
    v1, err := version.NewVersion("9.3.1")
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        return
    }
    v2, err := version.NewVersion("9.10.5")
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        return
    }
    if v1.Compare(v2) >= 0 {
        // do something
    }
}

こんな感じで使える。 LessThan, GreaterThan, Equal などもある。 Semantic Version に対応している必要があるようだ。