上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 42 下一页
摘要: 29. Defer 什么是 defer? defer 语句的用途是:含有 defer 语句的函数,会在该函数将要返回之前,调用另一个函数。这个定义可能看起来很复杂,我们通过一个示例就很容易明白了。 示例 Copy package main import ( "fmt" ) func finished 阅读全文
posted @ 2021-06-28 16:30 Οo白麒麟оΟ 阅读(169) 评论(0) 推荐(0)
摘要: 28. 多态 Go 通过[接口]来实现多态。我们已经讨论过,在 Go 语言中,我们是隐式地实现接口。一个类型如果定义了接口所声明的全部[方法],那它就实现了该接口。现在我们来看看,利用接口,Go 是如何实现多态的。 使用接口实现多态 一个类型如果定义了接口的所有方法,那它就隐式地实现了该接口。 所有 阅读全文
posted @ 2021-06-28 16:29 Οo白麒麟оΟ 阅读(242) 评论(0) 推荐(0)
摘要: 27. 组合取代继承 Go 不支持继承,但它支持组合(Composition)。组合一般定义为“合并在一起”。汽车就是一个关于组合的例子:一辆汽车由车轮、引擎和其他各种部件组合在一起。 通过嵌套结构体进行组合 在 Go 中,通过在结构体内嵌套结构体,可以实现组合。 组合的典型例子就是博客帖子。每一个 阅读全文
posted @ 2021-06-28 16:28 Οo白麒麟оΟ 阅读(88) 评论(0) 推荐(0)
摘要: 26. 结构体取代类 Go 支持面向对象吗? Go 并不是完全面向对象的编程语言。Go 官网回答了 Go 是否是面向对象语言,摘录如下。 可以说是,也可以说不是。虽然 Go 有类型和方法,支持面向对象的编程风格,但却没有类型的层次结构。Go 中的“接口”概念提供了一种不同的方法,我们认为它易于使用, 阅读全文
posted @ 2021-06-28 16:27 Οo白麒麟оΟ 阅读(60) 评论(0) 推荐(0)
摘要: 25. Mutex 临界区 在学习 Mutex 之前,我们需要理解并发编程中临界区(Critical Section)的概念。当程序并发地运行时,多个 [Go 协程]不应该同时访问那些修改共享资源的代码。这些修改共享资源的代码称为临界区。例如,假设我们有一段代码,将一个变量 x 自增 1。 Copy 阅读全文
posted @ 2021-06-28 16:25 Οo白麒麟оΟ 阅读(106) 评论(0) 推荐(0)
摘要: 24. Select 什么是 select? select 语句用于在多个发送/接收信道操作中进行选择。select 语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,select 会随机地选取其中之一执行。该语法与 switch 类似,所不同的是,这里的每个 case 语句都 阅读全文
posted @ 2021-06-28 16:24 Οo白麒麟оΟ 阅读(89) 评论(0) 推荐(0)
摘要: 23. 缓冲信道和工作池(Buffered Channels and Worker Pools) 什么是缓冲信道? 在[上一教程]里,我们讨论的主要是无缓冲信道。我们在[信道]的教程里详细讨论了,无缓冲信道的发送和接收过程是阻塞的。 我们还可以创建一个有缓冲(Buffer)的信道。只在缓冲已满的情况 阅读全文
posted @ 2021-06-28 16:23 Οo白麒麟оΟ 阅读(64) 评论(0) 推荐(0)
摘要: 22. 信道(channel) 什么是信道? 信道可以想像成 Go 协程之间通信的管道。如同管道中的水会从一端流到另一端,通过使用信道,数据也可以从一端发送,在另一端接收。 信道的声明 所有信道都关联了一个类型。信道只能运输这种类型的数据,而运输其他类型的数据都是非法的。 chan T 表示 T 类 阅读全文
posted @ 2021-06-28 16:22 Οo白麒麟оΟ 阅读(70) 评论(0) 推荐(0)
摘要: Go 协程是什么? Go 协程是与其他函数或方法一起并发运行的函数或方法。Go 协程可以看作是轻量级线程。与线程相比,创建一个 Go 协程的成本很小。因此在 Go 应用中,常常会看到有数以千计的 Go 协程并发地运行。 Go 协程相比于线程的优势 相比线程而言,Go 协程的成本极低。堆栈大小只有若干 阅读全文
posted @ 2021-06-28 16:20 Οo白麒麟оΟ 阅读(178) 评论(0) 推荐(0)
摘要: Go 是并发式语言,而不是并行式语言。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。 并发是什么? 并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。 我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。这个例子 阅读全文
posted @ 2021-06-28 16:18 Οo白麒麟оΟ 阅读(72) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 42 下一页