Golang 判断文件是否存在及递归创建文件夹

一、判断文件或文件夹是否存在 golang 判断文件或者文件夹是否存在可以通过 os.stat() 方法和 os.IsExist() 方法来判断:

二、递归创建文件夹 递归文件夹用到 os.MkdirAll() 方法: [crayon-69516c ... 阅读更多

Go defer 的运行时机和遇到的坑

一、 defer 用法

defer 是 golang 中独有的流程控制语句,用于延迟指定语句的运行时机,运行于函数的内部,当他所属函数运行完之后它才会被调用。

例如以下使用 defer 的代码:

输出结果为:

阅读更多

Golang redigo 使用笔记 (二):并发处理和连接池

一、并发问题 在 redigo 官方的文档描述中,Receive() 方法是不支持多并发的,原文为:

而 Do() 方法是间接调用了 Receive() 方法,所以 Do() 方法也是不支持多并发的。我们可以用一段代码来验证这一点: [crayon-6 ... 阅读更多

golang 管道的基本用法

一、 channel 管道 (channel) 是 golang 中用于多协程通信的手段,也是 go 编程中常用到的数据类型。 虽然被称为管道,但是并非在 《unix 环境高级编程》 中说的管道 (fifo 和 pipe),go 中的管道实际上是一种通过共享内存来实现的多线程通信方式,只是名字叫做管道而已。和 fifo 和 pipe ... 阅读更多

添加 ngrok 到 supervisor 守护进程

前面成功启动了 ngrok 服务,不好的是服务不是后台运行的,一旦关闭终端程序就会终止,这里我们可以把 ngrok 添加到 supervisor 中去让它以守护进程形式运行。 新建一个 supervisor 子程序的配置文件 ngrok.ini 放到/etc/supervisor 目录下,写入以下配置: [cra ... 阅读更多

基于 CentOS6.5 搭建 ngrok 内网穿透服务器

一、概述 ngrok 是一个反向代理的内网穿透服务器,用于把没有公网地址的内网主机映射到公网,常被用于微信后台开发。 ngrok 使用 go 语言编写,目前版本 2.1,开源版本为 1.7 ,存在内存泄漏且不稳定,长时间使用会导致资源占用异常,不适合长久使用,需要稳定版可以去购买正版。 环境要求:公网主机, ... 阅读更多

golang 向上取整、向下取整和四舍五入

一、概述 官方的 math 包中提供了取整的方法,向上取整 math.Ceil(),向下取整 math.Floor() 二、用法

要注意的是,取完整后返回的并不是真正的整数,而是 float64 类型,所以如果需要 int 类型的话需要手动转换 ... 阅读更多

golang 生成伪随机数

一、概述 golang 生成随机数可以使用系统自带的 math/rand 包。 二、使用方法

这种情况下产生的随机数都是相同的,如果需要不同的随机数需要这样:

或者 [cr ... 阅读更多