go语言实战学习笔记
coder~
菜鸟一只
展开
-
GO语言实战十四 输入和输出
输入和输出writer 和 reader 接口package mainimport ( "bytes" "fmt" "os")func main() { var b bytes.Buffer b.Write([]byte("hello ")) fmt.Fprintf(&b, "word") b.WriteTo(os.Stdout)}b.Write//Wr...原创 2020-01-15 17:08:08 · 290 阅读 · 0 评论 -
GO语言实战十三 标准库解码JSON
返回json{ "code": "200", "msg": "success", "data": [ { "id": "0010", "areaname": "北京市" } ]}解析代码package mainimport ( "encoding/json" "fmt"...原创 2020-01-15 14:40:28 · 215 阅读 · 0 评论 -
GO语言实战十二 标准库 log
log 包学习和源码分析测试代码package mainimport ( "fmt" "log")func init() { log.SetPrefix("Trace: ") log.SetFlags(log.Ldate | log.Lmicroseconds | log.Llongfile)}func main() { // Println写到标准日志记录器 lo...原创 2020-01-14 11:21:52 · 187 阅读 · 0 评论 -
GO语言实战十一并发模式
runner 包runner 包用于展示如何使用通道来监视程序的执行时间,如果程序运行时间太长,也可以 用 runner 包来终止程序。当开发需要调度后台处理任务的程序的时候,这种模式会很有用。这 个程序可能会作为 cron 作业执行,或者在基于定时任务的云环境(如 iron.io)里执行。package mainimport ( "errors" "os" "os/signal"...原创 2020-01-09 18:11:45 · 169 阅读 · 0 评论 -
GO语言实战十 管道
上一篇记录了goroutine操作共享数据时保证对共享资源的安全访 问以及消除竞争状态原子操作互斥锁这里介绍通道不要通过共享内存来通信,而应该通过通信来共享内存什么是通道通道可以被认为是Goroutines通信的管道。类似于管道中的水从一端到另一端的流动,数据可以从一端发送到另一端,通过通道接收。当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架...原创 2020-01-08 14:34:24 · 289 阅读 · 0 评论 -
GO语言实战九 goroutine、并发
什么是 goroutinegoroutine是golang中的coroutine,也叫协程,微软大法称之纤程(Fiber)。协程是一种更细粒度的调度,可以满足多个不同处理逻辑的协程共享一个线程资源。package mainimport ( "fmt" "runtime" "sync")func main(){ // 分配一个逻辑处理器给 调度器使用 runtime.GOM...原创 2020-01-07 17:14:51 · 380 阅读 · 0 评论 -
GO语言实战八 并发相关概念
go并发简介Go 语言里的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为 goroutine 时,Go 会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。Go 语言 运行时的调度器是一个复杂的软件,能管理被创建的所有 goroutine 并为其分配执行时间。这个调度 器在操作系统之上,将操作系统的线程与语言运行时的逻辑处理器绑定,并在逻辑处理器上运行 go...原创 2020-01-06 14:12:49 · 158 阅读 · 0 评论 -
GO语言实战七 嵌入类型
嵌套类型go 语言没有继承,因此使用嵌入类型组合 来实现类似或更强大的功能如下 基础类型human 可以嵌入到 man类型package mainimport "fmt"/** * 嵌入类型 */type humen struct { sex string age int name string}type man struct { humen play s...原创 2020-01-03 13:53:35 · 192 阅读 · 0 评论 -
GO语言实战六 接口
接口多态是指代码可以根据类型的具体实现采取不同行为的能力。如果一个类型实现了某个接 口,所有使用这个接口的地方,都可以支持这种类型的值标准库e...原创 2020-01-02 15:50:57 · 113 阅读 · 0 评论 -
GO语言实战五 类型系统
一、用户自定义类型声明结构类型type user struct { name string sex int age int} //使用结构类型声明变量,并初始化为其零值 var bill user bill.name = "cdb" fmt.Println(bill)//{cdb 0 0} //使用结构字面量来声明一个结构类型的变量 lisi := user{n...原创 2019-12-31 15:18:18 · 155 阅读 · 0 评论 -
GO语言实战四 数组、切片、映射
一、数组Go 语言有 3 种数据结构可以让用户 管理集合数据:数组、切片和映射。先学习数组数组内部实现和基础功能内部实现定义:数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连 续块。数组存储的类型可以是内置类型,如整型或者字符串,也可以是某种结构类型特点:内存连续、迭代更快速,由于长度固定 使用较少声明和初始化// 声明一个包含 5 个元素的整型数组// ...原创 2019-12-30 17:25:14 · 191 阅读 · 0 评论 -
GO语言实战三 打包和工具链
如何组织 Go 代码 使用 Go 语言自带的相关命令 使用其他开发者提供的工具 与其他开发者合作原创 2019-12-23 13:42:17 · 310 阅读 · 0 评论 -
GO语言实战二 go程序入门
###后期补充 第二章主要是代码原创 2019-12-23 13:37:30 · 106 阅读 · 0 评论 -
GO语言实战一 Go简介
为什么使用GOgo 高性能 且 开发速度快 Go 语言使用了更加智能的编译器,并简化了解决依赖的算法,最终提供了更快的编译速 度。 编译 Go 程序时,编译器只会关注那些直接被引用的库,而不是像 Java、C C++那 样,要遍历 依赖链中所有依赖的库。因此,很多 Go 程序可以在 1 秒内编译完。在现代硬 件上,编译整个 Go 语言的源码树只需要 20 秒go 语法简洁,类...原创 2019-12-23 11:32:47 · 332 阅读 · 1 评论