Golang精进

收录了 5 篇文章 · 0 人关注

  • Golang interface接口全面理解(二)

    Now your life, life in the future to play you, now do not work hard, the future suck. 现在不玩命,将来命玩你,现在不努力,未来不给力。 指针 vs 值类型实现接口 我们在第1部分中讨论的所有示例接口都是使用值receivers 实现的。也可以使用指针receivers 来实现接口。在使用指针receivers 实现接口时需要注意的细微之处。让我们了解使用下面的程序。 package main import "f...

  • Golang interface接口全面理解(一)

    There are three kinds of time: the future is late, and now it is flying like an arrow. The past will never stand still. 时间的步伐有三种:未来姗姗来迟,现在像箭一般飞逝,过去永远静立不动。 什么是interface 在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了。 在Go中,接口是一组方法签名。当一个类型为接口中的所有方法提供定义时,...

  • 熟读这5个开源项目就是合格的GO语言工程师!

    写代码同写文章一样,既是技术活,又是艺术活。不是懂了语法能够写出优秀的代码,也正如不是认识字就能够写出优美的文章一样。那个作家饱读史书,那个架构师不是在代码堆里和Bug堆里泡出来的。 因此,程序员刚入门除了读书外,阅读好的代码很重要。阅读优秀的代码可以了解大牛开发的思路,软件架构和语言技巧等。因此,本文针对Go语言,推荐大家5个非常优秀的开源项目,这些开源项目不仅应用广泛,而且其中所用的技术有很多基础技术,是做其它任何项目都不可或缺的。 image Codis Codis是一个分布式Redis解...

  • 图解Go select语句原理

    Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的;当select中没有case语句的时候,会阻塞当前的groutine。所以,有人也会说select是用来阻塞监听goroutine的。 还有人说:select是Golang在语言层面提供的I/O多路复用的机制,其专门用来检测多个channel是否准备完毕:可读或可写。 以上说法都正确。 ## I/O多路复用 我们来回顾一下是什么是``I/O多路复用``。 ### 普通多线...

  • golang之channel

    前言 本文算是对Diving Deep Into The Golang Channels的翻译,也算加强对channel的了解和使用。 使用channel func goRoutineA(a <- chan int){ val := <- a fmt.Println("goRoutineA received the data", val) } func main(){ ch := make(chan int) // 定义一个channel:接收int类型 go goRoutineA(ch) ti...