这是一个基本的围棋程序package mainimport ( "fmt" "time")type myTime time.Timefunc main() { my := myTime(time.Now()) fmt.Println(my) normal := time.Now() fmt.Println(normal)}以及相应的输出{63547112172 291468455 0x545980}2014-09-23 23:36:12.292132305 +0000 UTC我想知道为什么 myTime 的打印效果与 time.Time 不同。它们基本上应该来自相同的类型......此外,如果我尝试访问任何 time.Time 方法,比如说,Day,它可用于“正常”但不适用于“我的”。
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
fmt.Println
在将类型格式化为字符串时使用该String()
方法(或者更确切地说是fmt.Stringer
接口),如果它可用的话。当您使用基础类型创建新类型时(在您的情况下time.Time
):
type myTime time.Time
您不会继承基础类型的方法集。因此,myTime
没有String()
方法,所以 fmt 将使用结构的默认格式。
- 2 回答
- 0 关注
- 257 浏览
添加回答
举报
0/150
提交
取消