at backyard

Color my life with the chaos of trouble.

Goのtime.Duration型を用いた比較について

Go初心者による備忘録。

Goのtime.Duration型を用いることで経過時間を表すことができる。
そしてこの time.Durationint64 のため、数値型としての比較ができるようだ。

https://pkg.go.dev/time#Duration

つまり経過時間の比較をするケースで、どちらの変数の time.Duration が大きい場合を比較するのは t1 > t2 的な形で比較ができる。

サンプルコードを下に記載する。

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Duration(1) * time.Second
    t2 := time.Duration(2) * time.Second
    t3 := time.Duration(2) * time.Second

    fmt.Println("t1:", t1)
    fmt.Println("t2:", t2)

    // t1(1秒)よりt2(2秒)のほうが数値としては大きいのでtrueになる
    fmt.Println(t1 < t2)

    // t2とt3は同じ2秒のためtrueとなる
    fmt.Println(t2 == t3)

    // 数値型として表示させると実際に保持されている数値が見える
    fmt.Printf("t1: %d\n", t1)
    fmt.Printf("t2: %d\n", t2)
    fmt.Printf("t3: %d\n", t3)
}