golang
栁罗风尘
这个作者很懒,什么都没留下…
展开
-
go语言中常用的功能之一(json的使用)
go语言中json的使用文章目录1. json的编码和解码1.1 json的编码1.2 json的解码2. json的使用实例3. beego中json的使用1. json的编码和解码1.1 json的编码Marshal(v interface{}) ([]byte, error) 1.2 json的解码Unmarshal(data []byte, v interface{}) ...原创 2019-01-21 11:15:37 · 214 阅读 · 0 评论 -
go并发编程之六(sync之读写锁RWMutex)
RWMutex读写锁相关的介绍使用文章目录1. 读写锁的定义2. 读写锁的使用1. 读写锁的定义涉及到俩个角色:读者和写者。读者只读数据,写者修改它。当写者访问操作数据时,其他任何线程(读者或写者)都无法共享此数据的访问权限。当写者释放数据时,多个读者同时读取该数据时可以正常访问。读锁:只在写锁被锁定时,读锁才会起作用写锁:会锁定写锁和读锁锁定的所有区域2. 读写锁的使用pa...原创 2019-01-29 17:19:17 · 175 阅读 · 0 评论 -
go语言中常用的功能之九(模板渲染)
本文介绍go语言中的模板template渲染文章目录1. 渲染模板1.1 模板路径1.2 模板渲染的方法2. 变量解析3. 模板嵌套及变量传递3.1 定义模板3.2 引入模板3.3 指定解析模板3.4 实例4. 循环分支和函数的使用4.1 循环4.2 判断4.3 函数4.4 自定义变量4.5 示例1. 渲染模板1.1 模板路径相对路径相对路径都是基于 $GOPATH/src/ 例...原创 2019-02-21 16:57:05 · 394 阅读 · 0 评论 -
PHP开发者你需要了解的PHP与go的对比(转载)
本文讲解关于PHP中的class和go中的struct相关知识的对比本文根据原创文章稍作整理后完成,如果需查看原文可以点击这里 (你可能需要翻墙)文章目录1. class和struct2. interface3. 依赖注入4. 继承1. class和structPHP中的class 对应于 go 中的 struct , 详细定义使用可参看下图:2. interfacePHP...转载 2019-02-22 11:25:12 · 468 阅读 · 0 评论 -
go语言中常用的功能之十(文件上传和表单处理)
本文介绍go语言中的表单处理,以及表单中的文件上传文章目录1. 获取表单字段信息2. 文件上传1. 获取表单字段信息我们先来看一段html<form role="form" id="form1" method="post" class="form-horizontal" enctype="multipart/form-data" action="/save"原创 2019-02-22 16:44:27 · 257 阅读 · 0 评论 -
go语言中常用的功能之七(二维数组按某列排序)
本文讲解切片(数组)的排序,为什么是切片,而不是数组,因为数组是定长的,且不能改变长度,而切片是可扩展长度的,而且切片的传值排序会直接改变其本身的顺序文章目录1. 普通排序1.1 数字切片排序1.2 其他类型切片排序2. 自定义实现排序3.二维数组按某列排序1. 普通排序1.1 数字切片排序a := []int{4,5,7,3,2}sort.Ints(a)fmt.Println(a...原创 2019-02-17 17:14:50 · 2177 阅读 · 0 评论 -
go语言中常用的功能之十二(web基准测试和并发测试)
go语言常见的web基准测试和并发测试文章目录1. 基准测试2. web测试3. 并发测试1. 基准测试基准测试又称为性能测试,用于测试函数的执行效率占用内存等 书写遵循下面的规范即可文件名称以源文件名_test.go函数名以 BenchmarkYourFuncName(b testing.B)批量基准测试使用如下代码格式:for i := 0; i < b.N ...原创 2019-02-27 18:02:11 · 400 阅读 · 0 评论 -
go语言中常用的功能之十一(单元测试和案例测试)
go语言常见的单元测试和案例测试文章目录1. 单元测试2. 测试表3. 代码覆盖4. 案例测试1. 单元测试go中的测试比较简单,遵循以下几点即可:测试文件以源文件名_test.go 命名测试函数名称格式以 TestFuncName(t *testing.T) 命名测试错误 t.Error / t.Fail / t.Errorf 记录测试日志 t.Log 记录我们来看...原创 2019-02-26 10:41:10 · 182 阅读 · 0 评论 -
go语言中常用的功能之八(远程调用jsonrpc使用)
本文讲解go语言中远程调用jsonrpc的使用文章目录1. rpc的定义2. jsonrpc的使用3. 完整项目地址1. rpc的定义RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。2. jsonr...原创 2019-02-21 00:15:18 · 246 阅读 · 0 评论 -
go语言mysql入门之一(查询)
go语言mysql查询文章目录1. sql依赖包的安装2. 初始化3. 简单使用3.1 表结构3.2 声明返回结构体3.2 连接数据库3.3 查询单条记录3.4 更改json输出4. 多条记录查询1. sql依赖包的安装go get -v -u github.com/go-sql-driver/mysql2. 初始化import ( "database/sql" _...原创 2019-01-23 17:49:01 · 227 阅读 · 0 评论 -
go并发编程之五(sync之互斥锁Mutex)
Mutex互斥锁相关的介绍使用文章目录1. 互斥锁的定义2. 互斥锁的使用1. 互斥锁的定义互斥锁:是一种同步机制,用于在存在许多执行线程的环境中强制限制对资源的访问。锁旨在实施互斥 并发控制策略。我们来看一个示意图:没有锁的时候,A、B、C同时争抢资源E,像打架似的谁也不让谁,有锁了以后,只有A拥有该资源,B/C只能在外面等待索被释放2. 互斥锁的使用想象我们有1...原创 2019-01-29 12:21:26 · 429 阅读 · 0 评论 -
go并发编程之四(for-select-channel)
介绍for-select-channel的使用文章目录1. 定义2. 使用实例1. 定义先理解三个概念:没有条件的for是死循环:for { //code here }select-case 是专门用来轮询通道channel是否有值传递过来,有多个的时候会随机选择一个符合条件的case,如果一个也没有且没有 default 选项,它将成为一个阻塞操作,直到有新的值符...原创 2019-01-28 23:37:17 · 268 阅读 · 0 评论 -
go语言中常用的功能之二(time时间日期的使用)
go语言中日期的格式化文章目录1. 获取当前时间2. 格式化时间3. 根据已有时间字符串重新格式化4. 设置时区5. 获取当前时间的年月日时分秒6.时间戳与日期间的相互转换1. 获取当前时间t := time.Now()fmt.Println(t)2. 格式化时间ft := t.Format("2006-01-02 15:04:05") // 2006-01-02 15:04:0...原创 2019-01-21 14:24:05 · 290 阅读 · 0 评论 -
go语言中常用的功能之三(类型之间的相互转换)
go语言中各种类型之间的相互转换文章目录1. 字符串与整型之间的相互转换2. 字符串与小数浮点型之间的相互转换3. 字符串与字节之间的相互转换4. 小数与整数之间的相互转换5. 类型断言6. 类型函数转换1. 字符串与整型之间的相互转换使用 strconv.Atoi 将字符串转成整型n1 := "15"n2, _ := strconv.Atoi(n1)fmt.Printf("n...原创 2019-01-21 15:48:54 · 194 阅读 · 0 评论 -
go语言中常用的功能之四(正则匹配)
go语言中正则匹配与替换文章目录1. 匹配字符串是否符合规则1.1 验证手机号1.2 验证邮箱1.3 验证中文2. 提取匹配结果3. 正则替换匹配值1. 匹配字符串是否符合规则使用MustCompile函数,会抛出一个致命错误,导致程序退出,不会执行 defer 及 recover 函数,当然这也是为了检查匹配表达式的正确性,在写代码的时候抛出来更好1.1 验证手机号str :=...原创 2019-01-22 13:50:06 · 1012 阅读 · 0 评论 -
go语言中常用的功能之五(CURL)
go语言中curl的使用文章目录1. 使用条件1.1 下载依赖包curl1.2 go使用curl发起get请求1.3 go使用curl发起post请求2. 使用实例1. 使用条件1.1 下载依赖包curlgo get -v -u github.com/mikemintang/go-curl1.2 go使用curl发起get请求/** * get请求 * @param ur...原创 2019-01-22 16:14:37 · 3215 阅读 · 0 评论 -
go语言中常用的功能之六(格式化打印输出)
go语言中打印的各种格式化文章目录1. 类型和值的打印2. 整型的打印3. bool的打印4. 浮点的打印5. 字符串和字节切片的打印6. 切片指针的打印1. 类型和值的打印打印格式格式说明%v变量的默认值%+v结构体带着字段名打印,否则只打印结构体字段对应的值%#v打印变量的值(带着变量所在的包)%T打印变量的类型(带着变量所在的包)...原创 2019-01-22 17:06:32 · 303 阅读 · 0 评论 -
go并发编程之一(上下文context)
go语言中关于上下文相关的知识文章目录1. 上下文的组成1.1 树根1.2 树叶1.2.1 context.WithCancel1.2.2 context.WithDeadline和context.WithTimeout1.2.1 context.WithValue2. 上下文传递值3. 超时取消1. 上下文的组成1.1 树根上下文在某个环境中定义了两棵树,分别是:树ActxA ...原创 2019-01-28 17:15:47 · 305 阅读 · 0 评论 -
go并发编程之二(原子性)
原子性相关的概念文章目录1. 什么是原子性2. 我们为什么需要原子性我们知道redis操作是原子性的,究其具体原因是因为,redis服务是单线程的,当多个客户端发送命令到服务端执行时,所有的命令会进入队列,依次执行,如下图:1. 什么是原子性原子性是指的某种东西不可分割或者不可中断的一种属性。在考虑原子性时,经常需要做的第一件事是定义上下文或作用域,这个操作将被视为原子性的...原创 2019-01-28 18:03:26 · 225 阅读 · 0 评论 -
go并发编程之三(sync保持所有goroutine的完整执行WaitGroup)
WaitGroup的使用说明文章目录1. WaitGroup的定义2. WaitGroup的使用1. WaitGroup的定义WaitGroup定义了三个函数,分别是Add : 添加任务Done : 任务完成Wait : 等待任务完成通过这三个函数,我们可以安全等待多个异步的goutine的执行完成,示意图如下2. WaitGroup的使用举个栗子,比如我们同时调...原创 2019-01-28 23:18:27 · 287 阅读 · 0 评论 -
go语言中常用的功能之十三(字符串中的常用操作函数)
go中常用的字符串操作函数文章目录1. 常用操作函数概述2. 去掉指定字符3. 字符串替换4. 是否包含子串5. 字段自定义分割6. 字符串自定义修改7.自定义查找规则1. 常用操作函数概述凡是返回索引的 没找到都是返回 -1函数说明Count(str,substr) int统计子串出现的次数Contains(str,substr) bool包含子串么...原创 2019-05-23 21:28:59 · 344 阅读 · 0 评论