随笔分类 -  Go

记录Go知识
摘要:[TOC] module Go 在 1.11 之后推出了依赖包管理工具 Go Modules,使得开发者可以在 GOPATH 指定的目录外组织项目代码。 官方go module wiki "go/wiki/Modules" ; "Introduction to Go Modules" 是一篇很好的g 阅读全文
posted @ 2021-02-10 20:47 walkingSun 阅读(124) 评论(0) 推荐(0)
摘要:[TOC] select Unix中 想到的都是系统调用, I/O 模型时大都会提到基于 、`poll epoll select select` 有着比较相似的功能。 主要特性: 每个case都必须是一个通信 能在 Channel 上进行非阻塞的收发操作; 在遇到多个 Channel 同时响应时会随 阅读全文
posted @ 2021-02-10 20:47 walkingSun 阅读(278) 评论(0) 推荐(0)
摘要:[TOC] pprof web 使用生成火焰图 http://127.0.0.1:8081/ui/flamegraph?si=cpu 查看cpu时长 参考 https://zhuanlan.zhihu.com/p/71529062 https://eddycjy.com/posts/go/tools 阅读全文
posted @ 2020-11-15 11:01 walkingSun 阅读(168) 评论(0) 推荐(0)
摘要:[TOC] chan Channel是Go中的一个核心类型,可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。 receive 操作符 ` 阅读全文
posted @ 2020-10-11 22:25 walkingSun 阅读(494) 评论(0) 推荐(0)
摘要:[TOC] 讨论下目前语言的优劣,密集型计算的发展方向,面向并发的内存模型的演进,从几个角度来分析下:1. CPU早期语言(C语言),CPU都是以单核的形式顺序执行机器指令。顺序执行意味着在同一时刻只能在一个cpu顺序执行。单核CPU发展停滞,编程语言逐渐开始朝着多核并行化的方向发展,而Go也是在多核环境下原生支持并发的编程语言典范。2. 内存常见的并行编程模型有多线程、消息传递等。由于多线程并... 阅读全文
posted @ 2020-09-03 21:25 walkingSun 阅读(164) 评论(0) 推荐(0)
摘要:[TOC] # 传输json通过GET、POST或PUT或PATCH向服务端发送JSON```gofunc GetJson(reqUrl string, params map[string]string, header map[string]string) (response HttpResponse) { response = HttpResponse{ Url: reqU... 阅读全文
posted @ 2020-07-12 19:45 walkingSun 阅读(353) 评论(0) 推荐(0)
摘要:[TOC] # 数组查找元素go中没有类似其他语言p中in_array() 方法## 遍历```gopackage mainimport "fmt"// Contains 数组是否包含某元素func Contains(slice []string, s string) int { for index, value := range slice { if value == s { return... 阅读全文
posted @ 2020-05-04 02:35 walkingSun 阅读(6580) 评论(0) 推荐(0)
摘要:[TOC] 简介 目前正在学Go,做下记录,温故而知新,初学coding的时候可以快速翻查用法,了解原理。 多重赋值 多重赋值时,变量的左值和右值按从左到右的顺序赋值 匿名变量 匿名变量 '_'表示,使用匿名变量时,只需要在变量声明的地方使用下划线替换即可。 匿名变量不占用空间,不会分配内存。匿名变 阅读全文
posted @ 2020-04-19 21:02 walkingSun 阅读(330) 评论(1) 推荐(0)
摘要:[TOC] 并发 并发指在同一时间内可以执行多个任务。并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等。本章讲解的并发含义属于多线程编程。 goroutine是由Go语言的运行时调度完成,而线程是由操作系统调度完成。 使用者分配足够多的任务,系统能自动帮助使用者把任务分配到CPU上,让 阅读全文
posted @ 2020-04-19 20:58 walkingSun 阅读(495) 评论(0) 推荐(0)
摘要:[TOC] # 包(package)Go语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录(GOPATH)。Go的入口main()函数所在的包叫main包。## 工作目录(GOPATH)GOPATH是Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录。### 工程结构GOPATH指定的工作目录下,代码总是会保存在$GOPATH/src目录下。在工程经过gobuild、go... 阅读全文
posted @ 2020-04-18 21:15 walkingSun 阅读(487) 评论(0) 推荐(0)
摘要:[TOC] 接口(interface) Go中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象具有的特性,对外通过接口暴露能使用的特性。 Go的接口设计是非侵入式的,接口实现者不需要关系接口会被怎样使用,调用者也不需要关心接口的实现细节。接口是一种类型,也是一种抽象结构,不会暴露所含数据 阅读全文
posted @ 2020-03-30 22:35 walkingSun 阅读(939) 评论(0) 推荐(0)
摘要:[TOC] # http请求后需关闭句柄大量请求没有关闭,会造成go的内存泄露。这也是平时编码习惯没有养成,需谨记。务必请求后释放资源:```goresponse.Body.Close()```# 解析请求参数中带”;“,解析出错```gohttp://tj-adc.wtzw.com/click?source=wolong12;123344&project=reader_free&callback... 阅读全文
posted @ 2020-03-01 15:05 walkingSun 阅读(291) 评论(1) 推荐(0)
摘要:[TOC] struct Go使用结构体和结构体成员来描述真实世界的实体和实例对应的各种属性。 Go中的类型可以被实例化,使用new或&构造的类型实例的类型是类型的指针。 结构体成员由一系列的成员变量构成,这些成员变量也被称为"字段"。 字段拥有自己的类型和值; 字段名必须唯一; 字段的类型也可以是 阅读全文
posted @ 2020-02-24 21:29 walkingSun 阅读(343) 评论(0) 推荐(0)
摘要:[TOC] map map使用散列表(hash)实现 添加关联到map并访问关联和数据 map[Key_Type]Value_Type 填充内容方式 并没有使用make,而是使用大括号进行内容定义,就像json格式一样,健值对,并使用逗号分割。 取值 如果route存在,就返回那个值,如果不存在,返 阅读全文
posted @ 2020-02-24 00:35 walkingSun 阅读(396) 评论(0) 推荐(0)
摘要:[TOC] xorm xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 电子书 "XORM操作指南" 常用命令 xorm 是一组数据库操作命令的工具,包含如下命令: 编译xorm工具 下载数据库驱动 到GOPATH\src\github.com\go xorm\cmd\ 阅读全文
posted @ 2020-02-23 15:09 walkingSun 阅读(889) 评论(0) 推荐(0)
摘要:[TOC] 切片 数组的大小是固定的,在使用时难免会遇到扩容的情况。切片作为数组一个连续片段的引用,它的大小动态可变,我们可以简单将切片理解为动态数组。 切片中持有指向底层存储数据数组的指针,长度指当前切片中存储数据的长度,容量指当前切片的容量,即当前切片从它的第一个数据到其对应数组末尾的长度,可以 阅读全文
posted @ 2020-02-23 15:05 walkingSun 阅读(343) 评论(0) 推荐(0)
摘要:[TOC] 函数 声明函数 参数类型简写 函数返回值 Go支持多返回值 带有变量名的返回值 return 可以不填写返回值列表,也可以填写。 return 表达式; 函数在返回时,是先执行表达式,然后在返回. 所以上述代码 3赋给了b,最终返回1,3 函数变量 把函数作为值保存到变量中 字符串的链式 阅读全文
posted @ 2020-02-23 00:55 walkingSun 阅读(249) 评论(0) 推荐(0)
摘要:[TOC] # 创建协程```go jobCount := 10 // sync.WaitGroup 监控所有协程的状态,从而保证主协程结束时所有的子协程已经退出 group := sync.WaitGroup{} for i:=0;i < jobCount;i++ { group.Add(1) go func(i int) { fmt.Println("task ",i) ti... 阅读全文
posted @ 2020-02-13 11:44 walkingSun 阅读(330) 评论(0) 推荐(0)
摘要:[TOC] # string、int、int64相互转换```go#string到intint,err:=strconv.Atoi(string)#string到int64int64, err := strconv.ParseInt(string, 10, 64)#int到stringstring:=strconv.Itoa(int)#int64到stringstring:=strconv.For... 阅读全文
posted @ 2020-01-14 21:15 walkingSun 阅读(364) 评论(0) 推荐(0)
摘要:[TOC] # 时间[https://www.cnblogs.com/followyou/p/12187949.html](https://www.cnblogs.com/followyou/p/12187949.html) # error[https://www.cnblogs.com/followyou/p/12185514.html](https://www.cnblogs.com/foll... 阅读全文
posted @ 2020-01-13 16:34 walkingSun 阅读(531) 评论(0) 推荐(0)

**/