《Go并发编程实践》接口练习

牛人是把书读薄,而我这只菜鸟是把书读得越来越厚了,以致于开始一起看书的伙伴怀疑我是不是偷懒,怎么就一点进展也没有。
其实只是我太喜欢钻牛角尖了,每每钻进死胡同后,死活出不来,所以一直就没有进展。
这不现在一个月过去了,这本书还停留在第三章。

package main

import (
    "sort"
    "fmt"
)

type Interface interface {
    Len()int
    Less(i,j int)bool
    Swap(i,j int)
}
type Sortable interface{
    sort.Interface
    Sort()
}

type SortableStrings [3]string

func (k SortableStrings)Len() int {
    res:=len(k)
 //自己增加的打印
    fmt.Printf("len:%v\n",k)
    return res
}
func (k SortableStrings)Less(i,j int)bool  {
    res:=k[i]
运行结果:
len:3
less:1,2
Swap:2,1
less:3,1
Sort:[2 1 3]
res:[2 1 3]

上面这段例子来自于书中第三章接口部分的示例,作者举例是为了说明在go语言中合理得使用接口,可以实现继承的功能,另外复习了接收者取值和取指针会对结果的影响。

手贱又好奇心不知道在哪个胡同的我,又把所有结果值打印出来了,你问我打印这些有什么目的,我只是想要看下这些函数,最终会输出的结果又让我纠结了。

第二个Less输出less:3,1这是我怎么也想不明白的,原想着应该可以慢慢调试出来,可是调试了许多,一直没有进入到这一步,所以就得遗留这个问题了。

此为误人子弟的思考,具体还是要自己调试寻找答案的。

你可能感兴趣的:(《Go并发编程实践》接口练习)