Constants のところに定数はまとめて表示される。
time.Second の型は time.Duration で、 time.Duration の実体は int64 。
fmt.Println(time.Second) すると 1s
と表示される。 s
はどこからきたかというと、 Stringer
インタフェースの仕組みによる。
time.Duration 型は String() string メソッドを実装している。その中で 0s
とか 1m0s
みたいな文字列にしている。
- https://golang.org/pkg/time/#Duration.String
- https://github.com/golang/go/blob/d0d6593d1d4e81acd073244f42b6893fa65c99d8/src/time/time.go#L614
余談。変数の型を調べるには reflect.TypeOf を使う。
fmt.Println(reflect.TypeOf(time.Minute))
- https://play.golang.org/p/IAjsrxfzZru