Go
1
go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁

内置函数 1.close: 主要是用来关闭channel 2.len:用来求长度,比如string、array、slice、map、channel 3.new与make都是用来分配内存 new用来分配值类型,如int、string,返回的是指针 make用来分配引用类型,如chan、map、slic ...

kakawith @ 2020/03/28

3
理解Golang组件protobuf

什么是protobuf protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 p ...

平也 @ 2020/03/27

4
go micro实战01:快速搭建服务

背景 go micro给我们提供了一个非常便捷的方式来快速搭建微服务,而且并不需要提前系统了解micro,下面用一个简单的示例来快速实现一个服务。 创建Proto文件 因为我们要做微服务,那么就一定有服务端和客户端,这两个端通过什么格式进行内容传输,就涉及到了序列化,比较主流的序列化协议就是JSON ...

平也 @ 2020/03/27

5
go: time包

1.time.Time类型,用来表示时间 2.获取当前时间 now := time.Now() now := time.Now().Day() now := time.Now().Minute() now := time.Now().Month() now := time.Now().Year() ...

kakawith @ 2020/03/26

6
go:函数

1.声明语法 func 函数名 (参数列表) (返回值) { pass } 1.func add() { pass } 2.func add(a int, b int) (int,int) { pass } 3.func add(a,b int,args...) int { pass } 4.匿名函 ...

kakawith @ 2020/03/26

7
go:流程控制

1.if /else分支判断 1.if condition { } 2.if condition { }else { } 3.if condition { }else if condition { }else { } 2.switch / case var i =0 switch i { case ...

kakawith @ 2020/03/26

8
Go语言入门指南,带你轻松学Go

Go(Golang) 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源, ...

实验楼 @ 2020/03/26

9
Go语言defer分析

什么是defer? defer语句是专门在函数结束以后做一些清理工作的。我们先举一个例子来更好的理解,现在有一个函数,它的作用是把一个文件内容拷贝到另一个文件。 以上代码是可以正常执行的,但是存在一个问题,如果os.Create执行失败,那么就无法执行到文件资源的Close函数。进程每打开一个文件就 ...

平也 @ 2020/03/25

10
理解Go语言组件flag

作用 主要用来实现命令行的参数解析,以达到实现以下效果的目的 使用方式 flag是Go语言的内置包,能接收的参数类型主要有字符串、布尔和数值类型。 方式一 我们在main函数中调用 函数来定义命令,该函数共有三个参数 第一个参数是命令名称 第二个参数为默认值,也就是不传ip时默认拿到的值 第三个参数 ...

平也 @ 2020/03/25

11
Golang中的内置函数

Go中存在着不少内置函数,此类函数并不需要引入相关Package就可以直接使用该类函数。在Go的源码builtin包的builtin.go中定义Go所有的内置函数;但该文件仅仅是定义描述出了所有内置函数,并不包含函数的任何实现代码,该文件除了定义了内置函数还定义了部分内置类型; 内置函数使用 len ...

AiFly @ 2020/03/24

12
GO语言web框架Gin之完全指南(二)

这篇主要讲解 自定义日志 与 数据验证 参数验证 我们知道,一个请求完全依赖前端的参数验证是不够的,需要前后端一起配合,才能万无一失,下面介绍一下,在Gin框架里面,怎么做接口参数验证的呢 gin 目前是使用 "go playground/validator" 这个框架,截止目前,默认是使用 版本; ...

IM_SEAN_YANG @ 2020/03/23

13
带你入门Go的消息队列NSQ

以前看到过NSQ这个东西,也一直没去看。今天刚好有时间就搭建了下,简单尝试了下这个Go语言下的消息队列NSQ,我这里简要记录下。 其实,NSQ国内用的是比较少的,我这里也是算了解这么个东西吧 ,稍微看下源码,学到东西而已。 NSQ简介 NSQ是一个基于Go语言的分布式实时消息平台, 它具有分布式、去 ...

随彦心MO @ 2020/03/23

14
defer 链如何被遍历

去年开始写文章的第一篇就是关于 defer,名字比较文艺: "《Golang 之轻松化解 defer 的温柔陷阱》" ,还被吐槽了。因为这篇文章,到《Go 夜读》讲了一期。不过当时纯粹是应用层面的,也还没有跳进 Go 源码这个大坑,文章看着比较清新,也没有大段的源码解析。 自从听了曹大在《Go 夜读 ...

Stefno @ 2020/03/23

15
源码解读 Golang 的 sync.Map 实现原理

简介 Go 的内建 是不支持并发写操作的,原因是 写操作不是并发安全的,当你尝试多个 Goroutine 操作同一个 ,会产生报错: 。 因此官方另外引入了 来满足并发编程中的应用。 的实现原理可概括为: 通过 read 和 dirty 两个字段将读写分离,读的数据存在只读字段 read 上,将最新 ...

张凯强-zkqiang @ 2020/03/23

16
Go语言net/http包的简单使用

1.打开Goland,点击New Project新建一个项目 然后填写新建项目的工程名,选择sdk 选择和设置完成后点击Create完成创建。选中工程名,单击右键,选择New->Go File 输入名称后回车即可新建一个Go的文件 Empty file只会添加一个包名,Simple Applicat ...

卡尔的思索 @ 2020/03/22

17
1、 go基础

fanzou @ 2020/03/22

18
channel的基本使用

1、管道分类 读写管道 只读管道 只写管道 缓冲通道 :创建时指定大小(如果不指定默认为非缓冲通道) 2、正确使用管道 1. 管道关闭后自能读,不能写 2. 写入管道不能超过管道的容量 cap ,满容量还写则会阻塞 3. 管道为空时,如果没有关闭,则继续读取会阻塞当前线程,直到有东西写入管道 4. ...

Biningo @ 2020/03/22

19
channel通道常见使用场景

1、读写 2、管道实现定时通知 3、管道实现互斥锁 ...

Biningo @ 2020/03/22

20
channel的关闭的经典场景

关闭原则 一个常用的使用Go通道的原则是不要在数据接收方或者在有多个发送者的情况下关闭通 道。 通用的原则是不要关闭已关闭的通道 错误关闭 go func Write(dataCh chan int){ for{ if value:=rand.Intn(1000);value!=0{ time.Sl ...

Biningo @ 2020/03/22