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里的这些方法来完成一个排序的工作。
10
相似问题