Go言語でtime.Time型での比較演算子を用いた時のエラーについて
Q&A
解決したいこと
time.Time
型のデータを扱った際に比較演算子を用いた場合、扱えないと調べていたら出てきました。逆にこのエラーを出したいところなんですが、出てこないので発現するようにしたい。
そもそも、比較演算子を用いた処理はコンパイルエラーは起きないなどご教示いただきたいです。
発生している問題・エラー
"t1 is not equal to t2"
コンソールに出力される内容は上記の テキストです。
該当するソースコード
type MyTime struct {
t time.Time
}
func main() {
t1 := MyTime{t: time.Now()}
t2 := MyTime{t: time.Now()}
if t1 == t2 {
fmt.Println("t1 is equal to t2")
} else {
fmt.Println("t1 is not equal to t2")
}
}
自分で試したこと
故意的に変数t1
と変数t2
を比較演算子を用いて実行しました。自身の予測では、time.Time
型のデータは比較演算子が扱えないのならコンパイルエラーが発生するのではないかと予想しました。しかし、上記のコードを実行すると、処理が実行されコンソールが出ました。
以上から、自身の理解でtime.Time
型のデータで比較演算子が使えてしまっている。認識になってしまっています。使用することはできないことを実践するにはどのような記述をすればいいでしょうか。
ご教示いただければ、幸いです。