随笔分类 - golang
有关 golang 语言相关的系列博客
摘要:并发Concurrency 很多人都是冲着 Go 大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine 只是由官方实现的超级“线程池”而已。不过话说回来,每个实例 4~5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造 Go 号称的高并发的根本原因。另外,go
阅读全文
摘要:Go错误处理 Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用errors.New 可返回一个错误信息: 在下面的例子中,我们在调用 S
阅读全文
摘要:反射reflection 1. 反射可以大大的提高程序的灵活性,使得 interface{} 有更大的发挥余地 2. 反射使用 TypeOf 和 ValueOf 函数从接口中获取目标对象信息 3. 反射会将匿名字段作为独立字段(匿名字段本质) 4. 想要利用反射修改对象状态,前提是 interfac
阅读全文
摘要:接口interface 1. 接口是一个或多个方法签名的集合 2. 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为 Structural typing 3. 接口只有方法声明,没有实现,没有数据字段 4. 接口可以匿名嵌入其它接口,或切入到结构中去 5. 将
阅读全文
摘要:方法 method 1. Go 中虽没有 class,但依旧有 method 2. 通过显示说明 receiver 来实现与某个类型的组合 3. 只能为同一个包中的类型定义方法 4. Receiver 可以是类型的值或者指针 5. 不存在方法重载 6. 可以使用值或指针来调用方法,编译器会自动完成转
阅读全文
摘要:结构struct 1. Go 中的struct与C中的struct非常相似,并且Go没有class 2. 使用 type <Name> struct{} 定义结构,名称遵循可见性规则(即首字母大写对外可见)。 type person struct{} 3. 支持指向自身的指针类型成员,支持匿名结构,
阅读全文
摘要:1. map 1. 类似其它语言中的哈希表活着字典,以 key-value 形式存储数据 2. key 必须是支持 == 或 != 比较运算的类型,不可以是函数、map 或 slice 3. map 查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 4. map使用 make() 创建,支
阅读全文
摘要:1. 判断语句if 1. 条件表达式没有括号(这点其他语言转过来的需要注意) 2. 支持一个初始化表达式(可以是并行方式,即:a, b, c := 1, 2, 3) 3. 左大括号必须和条件语句或 else 在同一行 4. 支持单行模式 5. 初始化语句中的变量为 block 级别,同时隐藏外部同名
阅读全文
摘要:1. Go项目的目录结构 一般的,一个Go项目在GOPATH下,会有如下三个目录: project bin pkg src 其中,bin 存放编译后的可执行文件;pkg 存放编译后的包文件;src 存放项目源文件。一般,bin 和 pkg 目录可以不创建,go 命令会自动创建(如 go instal
阅读全文
摘要:Go的发展史 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在
阅读全文
摘要:申明:Mac 本上的终端感觉不是那么多好用,以前在 Windows 上操作 Linux 都是通过 XShell 来操作的,界面美观大方、操作使用比较简单。故在 Mac 上也需要有这样一款类似的工具,那就是我今天要说的这款软件:ITerm2 ITerm2 的安装与配置 虽然 MAC 系统自带有终端,但
阅读全文
摘要:声明:本人所使用的是Mac Pro 安装开始 1. 首先将 GO 基础组件安装好,就好似 java 中的 jdk。当然,安装的时候需要到官网去下载,这一步难倒了好多无法FQ的同学们,故这里我将我这边下载安装的版本分享出来,供大家免费下载:https://pan.baidu.com/s/1bHnfrg
阅读全文

浙公网安备 33010602011771号