云原生系列Go语言篇-并发 Part 2

云原生系列Go语言篇-并发 Part 2

并发实践和模式既然已经讲解了Go为并发所提供的基础工具,我们就来学习一些并发的最佳实践和模式吧。保持API无并发并发是一种实现细节,好的API设计应当尽可能隐藏实现细节。这样在修改代码时无需修改其调用方式。在实践中,这意味着永远不要在API的类型、函数及方法中暴露通道或互斥锁(我们会在何时用互斥锁替...

云原生系列Go语言篇-并发 Part 1

并发是一个计算机科学用语,将一个进程分割成独立组件并指明这些组件如何安全共享数据。大部分语言通过库提供并发,使用的是尝试通过获取锁操作执行系统级共享数据的线程。Go独树一帜。它的主要并发模块,很多认认为是Go的最著名的特性,基于CSP(通讯顺序过程)。它依据快速排序算法的发明人Tony Hoare在...

Go语言核心编程 - 数据结构和算法

47 课时 |
1657 人已学 |
免费

Go语言核心编程 - 基础语法、数组、切片、Map

182 课时 |
2984 人已学 |
免费

Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程

162 课时 |
1393 人已学 |
免费
开发者课程背景图
云原生系列Go语言篇-模块、包和导入 Part 2

云原生系列Go语言篇-模块、包和导入 Part 2

使用模块我们已经学习了如何在单个模块中使用包,接下来该学习如何集成第三方模块及其中的包。然后,我们会学习如何发布自己模块并添加版本,以及Go的中央服务:pkg.go.dev、模块代理和校验和(checksum)数据库。导入第三方代码我们已导入过标准库中的包,如fmt、errors、os和math。G...

云原生系列Go语言篇-模块、包和导入 Part 1

云原生系列Go语言篇-模块、包和导入 Part 1

大部分编程语言都有将代码组织到命名空间和库的系统,Go也不例外。在学习其它特性时我们看到了,Go对这些老思想引入了新方法。本章中,读者会学习到如何通过包和模块组织代码、如何导入、如何使用第三方库以及如何创建自有库。仓库、模块和包Go语言的库管理有三个基础概念:仓库、模块和包。所有开发者对仓库都很熟悉...

云原生系列Go语言篇-错误处理

云原生系列Go语言篇-错误处理

从其它语言转Go最大的挑战之一就是错误处理。对那些习惯了使用异常的开发者,Go采取的方法有些离经叛道。但Go语言使用的方法蕴含着牢不可破的软件工程原理。本章中,我们学习如何在Go中处理错误。我们会学习Go系统中会停止执行的错误处理panic和recover。错误处理基础在函数一章我们简单地讲到,Go...

云原生系列Go语言篇-类型、方法和接口 Part 2

接口快速教程虽然Go并发(在并发一章讲解)是聚光灯下的宠儿,便Go设计中真正的明星是其隐式接口,也是Go中唯一的抽象类型。下面就来学习它的伟大之处。我们先快速学习如何声明接口。接口的内在很简单。和其它自定义类型一样,可以使用type关键字进行定义。以下是fmt包中Stringer接口的定义:type...

云原生系列Go语言篇-类型、方法和接口 Part 1

通过前面章节的学习,我们知道Go是一种静态类型语言,包含有内置类型和用户定义类型。和大部分现代编程语言一样,Go允许我们对类型关联方法。它也具备类型抽象,可以编写没有显式实现的方法。然而,Go处理方法、接口和类型的方式与现行大部分其它语言大相径庭。Go的设计者鼓励软件开发者所提倡的最佳实践,避免继承...

云原生系列Go语言篇-指针

云原生系列Go语言篇-指针

我们已学习过变量和函数,下面来快速了解下指针的语法。然后我们通过将Go中的指针与其它语言中的类进行对比来讲清指针的原理。我们还会学习如何以及何时使用指针、Go中如何分配内存以及正确使用指针及值是如何使Go程序变得更快速、更高效的。指针快速入门指针其实就一个存储了值所在内存位置的变量。如果读者学过计算...

云原生系列Go语言篇-函数

学到现在,我们的程序都局限于main函数中的寥寥数行。是时候搞点更大的动作了。本章中我们会学习如何在Go语言中编写函数以及函数那些有趣的功能。声明及调用函数读者只要使用过C、Python、Ruby或JavaScript等编程语言,那么对Go函数的基础也不会陌生。(Go中还有方法,在类型、方法和接口一...

云原生系列Go语言篇-代码块,遮蔽和控制结构

云原生系列Go语言篇-代码块,遮蔽和控制结构

前面我们已经讲解了变量、常量和内置类型,下一步要学习程序逻辑和组织方式了。我们会先讲解代码块,以及代码块如何控制某个标识符的可用性。然后我们一起学习Go语言的控制结构:if、for和switch。最后我们会讨论goto,以及使用它的场景。代码块Go允许在多处声明变量。可以在函数外声明、声明函数参数也...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。