filemeta.go中init()何时被调用

来源:2-3 编码实战:保存文件元信息

午夜包子铺

2020-02-06

请问一下,filemeta.go文件中,init()是何时被调用的呢?而其他的方法都是用包名点出来了。同理,sort.go里面的Len(), Swap() 和 Less()方法好像都没有被调用,这是为什么呢?

谢谢!

写回答

1回答

xiaomo

2020-02-06

同学你好,

1)init方法是golang的内建方法(built-in)。一个package内的init方法,会在被import的时候就隐式调用了,无需我们手动去执行。我们一般会用来做一些数据初始化/赋值默认值的工作。

2)Len, Swap, Less是sort.Sort接口的方法集合,这个是不用显式来调用的。

ByUploadTime实现了这三个方法后,相当于实现了sort.Sort这个接口。在我们执行

sort.Sort(ByUploadTime(fMetaArray))

这行代码的时候,sort.Sort就会通过我们在meta/sort.go里的这些方法来完成一个排序的工作。

1
0

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程