2020年7月21日
摘要: 一句话说明 接口提供了一种方式来说明对象的行为:如果谁能搞定这件事,它就可以用在这儿。 接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。 所以一句话来说,接口是使用方法的抽象 定义: type Integer int func (a Integer) L 阅读全文
posted @ 2020-07-21 16:07 清明-心若淡定 阅读(511) 评论(0) 推荐(0)
摘要: 什么是channel 从字面上看,channel的意思大概就是管道的意思。channel是一种go协程用以接收或发送消息的安全的消息队列,channel就像两个go协程之间的导管,来实现各种资源的同步。可以用下图示意: channel的用法很简单: func main() { ch := make( 阅读全文
posted @ 2020-07-21 14:42 清明-心若淡定 阅读(290) 评论(0) 推荐(0)
摘要: select 介绍 从不同并发执行的协程中,获取数据可以用select来完成。select监听的多个通道,也可以用通道发送数值。 select { // 接收数据 case u:= <- ch1: ... // 发送数据 case v:= <- ch2: ... ... default: // no 阅读全文
posted @ 2020-07-21 12:23 清明-心若淡定 阅读(226) 评论(0) 推荐(0)
摘要: A "select" statement chooses which of a set of possible send or receive operations will proceed. It looks similar to a "switch" statement but with the 阅读全文
posted @ 2020-07-21 10:53 清明-心若淡定 阅读(326) 评论(0) 推荐(0)
摘要: channel容量为0和为1的区别 容量为1的channel是有缓冲channel的特殊情况,可以用在2个goroutine之间同步状态,或者其中一个等待另一个完成时才继续执行任务的情况。 无缓存的channel的容量始终为0,发送者发送数据和接受者接受数据时同时的,无任何中间态,不能缓冲任何数据。 阅读全文
posted @ 2020-07-21 09:46 清明-心若淡定 阅读(482) 评论(0) 推荐(0)