美文网首页go学习
《Go并发编程实践》接口练习

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

作者: 大雁儿 | 来源:发表于2017-01-16 13:54 被阅读52次

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

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]<k[j]
 //自己增加的打印
    fmt.Printf("less:%v,%v\n",k[i],k[j])
    return res
}
func (k SortableStrings)Swap(i,j int)  {
    k[i],k[j]=k[j],k[i]
      //自己增加的打印
    fmt.Printf("Swap:%v,%v\n",k[i],k[j])
}

func (k SortableStrings)Sort()  {
     sort.Sort(k)
 //自己增加的打印
    fmt.Printf("Sort:%v\n",k)
}
func main()  {
    ss:=SortableStrings{"2","1","3"}
    ss.Sort()
    fmt.Printf("res:%v\n",ss)
}
运行结果:
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并发编程实践》接口练习

    牛人是把书读薄,而我这只菜鸟是把书读得越来越厚了,以致于开始一起看书的伙伴怀疑我是不是偷懒,怎么就一点进展也没有。...

  • Go 并发编程实践

    前言:最近,优化了公司内部的一个常用接口,请求的耗时稳定优化在 200 ms 内(对比之前 300~500 ms)...

  • Go并发编程实践

    Go语言最大的特点就是并发编程,它实现了一种基于协程的并发模型。轻量级的协程模型减少了线程模型的切换消耗,大大增加...

  • go基本语法

    一、总结 1、Go没有对象,没有继承多台,没有泛型,没有try/catch2、Go有接口,函数式编程,csp并发模...

  • Go基础语法(九)

    Go语言并发 Go 是并发式语言,而不是并行式语言。 并发是指立即处理多个任务的能力。 Go 编程语言原生支持并发...

  • Go并发

    Go语言中的并发编程 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很...

  • 瞅一眼就会使用GO的并发编程分享

    [TOC] GO的并发编程分享 之前我们分享了网络编程,今天我们来看看GO的并发编程分享,我们先来看看他是个啥 啥...

  • day08-go.GPM

    当别人到go为什么支持高并发,或者问为什么go本身对并发编程友好?以及go与Java对比的并发对比 正确回答: 在...

  • 推荐序 《Go 并发编程实践》

    Go 是年轻而有活力的语言。 它最初于 2007 由 Robert Griesemer, Rob Pike 和 K...

  • Go语言简介

    Go语言简介 Go语言设计的初衷 针对其他语言的痛点进行设计并加入并发编程为大数据,微服务,并发而生的通用编程语言...

网友评论

    本文标题:《Go并发编程实践》接口练习

    本文链接:https://www.haomeiwen.com/subject/hkqpbttx.html