I am try to update my Go code from 1.8 to 1.9. but, i got some problem:
package simple_struct
import (
"time"
"encoding/json"
"github.com/stretchr/testify/assert"
"testing"
)
type SimpleStruct struct {
CreateTime time.Time
Other string
}
func NewSimpleStruct() *SimpleStruct {
return &SimpleStruct{
CreateTime: time.Now(),
}
}
func Test(t *testing.T) {
s1 := NewSimpleStruct()
data, err := json.Marshal(s1)
assert.Nil(t, err)
s2 := &SimpleStruct{}
err = json.Unmarshal(data, s2)
assert.Nil(t, err)
assert.Equal(t, s2, s1)
// this is not equal
// output:
/*
Diff:
--- Expected
+++ Actual
@@ -1,3 +1,3 @@
(*simple_struct.SimpleStruct)({
- CreateTime: (time.Time) 2017-12-01 14:54:53.948875421 +0800 CST,
+ CreateTime: (time.Time) 2017-12-01 14:54:53.948875421 +0800 CST m=+0.001827244,
*/
}
It is working in Golang 1.8, but not in Golang 1.9.
I know that Golang 1.9 has update time.Time
, but I do not understand this.