概述 Go 箴言: 不要通过共享内存来通信,而要通过通信来共享内存。 阻塞通道与非阻塞通道 通过关键字 chan + 数据类型 来表明通道数据类型,调用 make() 函数来初始化一...
概述 建议先阅读 goroutine 小节。 Go 箴言: 不要通过共享内存来通信,而要通过通信来共享内存。 goroutine 是 Go 程序并发执行的实体,channel (通道) 则是它们之间的连...
概述 goroutine 是 Go 程序并发执行的实体,对于初学者来讲,可以简单地将 goroutine 理解为一个 超轻量的线程。 当一个程序启动时,只有一个 goroutine 调用 main 函数...
概述 问题:Go 中 Map 的 key 可以是哪些数据类型呢? 我们来看看具体的规则。 比较运算符 用来比较两个操作数并返回一个 bool 值,常见的比较运算符: == 等于 !=...
概述 当一个变量使用 var 进行声明后并未进行初始化 (变量后面没有赋值符 =) 操作,会默认分配一个零值 (zero value)。 不同类型对应的零值 类型 零值 bool false int 0...
概述 建议先阅读 函数 和 接口 小节。 例子 errors.New() 创建错误 package main import ( "errors" "fmt" ) // 自定义除法函数 func myDivide(dividend, diviso...
概述 Go 里面没有 implements 关键字来判断一个结构体 (对象) 是否实现了某个接口, 要实现类似的功能,需要用到 类型断言。 类型断言 // 判断 v 是否实现了接口 i // 返...
概述 标准库 error 数据类型本质上就是一个接口,原型如下: package builtin type error interface { Error() string } 例子 实现 error 接口 package main import (...
概述 Go 接口是隐式实现。 对于一个数据类型,无需声明它实现了哪些接口,只需要实现接口必需的方法即可。当然了,存在一个小问题就是: 我们可能无意间实现了某个接口:)...
概述 方法的声明和普通函数的声明类似,只是在函数名字前面多了一个 接收者参数 (接收者参数将方法绑定到其对应的数据类型上)。方法可以绑定到任何数据类型上,但是大多...
概述 Go 支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。 例子 为了省略篇幅,本小节只使用 字面量...
概述 结构体 是将零个或多个字段 (变量) 组合在一起的复合数据类型,类似于面向对象语言中的 对象。 结构体以及其字段都使用 可见性 规则。 语法规则 type 结构体名称 st...
概述 建议先阅读 defer 小节。 recover 会终止 panic 状态并且返回 panic 的值,函数会从 panic 之前执行到的地方直接返回,不会继续往下执行。 语法规则 recover 和 def...
社交账号:
我要举报该,理由是: