解决 gvm 工具无法下载安装包的问题
GVM(Go Version Manager) 是一款用于管理和切换不同 Go 语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个 Go 版本,同时还能确保项目之间的依赖关系井然有序。 GVM 的主要功能包括: - 安装和卸载 Go 版本:GVM 允许用户快速安装和卸载 Go 语言的不同版本,以便在不同项目 ... 阅读更多
GVM(Go Version Manager) 是一款用于管理和切换不同 Go 语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个 Go 版本,同时还能确保项目之间的依赖关系井然有序。 GVM 的主要功能包括: - 安装和卸载 Go 版本:GVM 允许用户快速安装和卸载 Go 语言的不同版本,以便在不同项目 ... 阅读更多
一、简介 go module 公共代理仓库,代理并缓存 go 模块。你可以利用该代理来避免 DNS 污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get 无法在线获取到仓库,代理仓库就是帮我们解决这个问题的。 二、使用方法 使用 go1.11 以上版本并开启 go module 机 ... 阅读更多
一、判断文件或文件夹是否存在 golang 判断文件或者文件夹是否存在可以通过 os.stat() 方法和 os.IsExist() 方法来判断:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
func isExist(path string)(bool){ _, err := os.Stat(path) if err != nil{ if os.IsExist(err){ return true } if os.IsNotExist(err){ return false } fmt.Println(err) return false } return true } |
二、递归创建文件夹 递归文件夹用到 os.MkdirAll() 方法: [crayon-698299 ... 阅读更多
一、问题描述 在 windows 下,time.Parse() 的时区和 time.Format() 的时区是一致的。 但是在 linux 环境下,time.Parse() 的默认时区是 UTC,time.Format() 的时区默认是本地,两者如果不处理好就会导致错误。 [crayon-69829959ba65426 ... 阅读更多
一、并发问题 在 redigo 官方的文档描述中,Receive() 方法是不支持多并发的,原文为:
|
1 |
Connections support one concurrent caller to the Receive method and one concurrent caller to the Send and Flush methods. No other concurrency is supported including concurrent calls to the Do method. |
而 Do() 方法是间接调用了 Receive() 方法,所以 Do() 方法也是不支持多并发的。我们可以用一段代码来验证这一点: [crayon-6 ... 阅读更多
一、概述 redigo 是一个 redis 的 go client,官方描述为:Redigo is a Go client for the Redis database. 基本特点: 简单的 API 调用,并支持所有的 redis 命令。 支持管道、事务、订阅以及连接池。 项目首页:https://github.c ... 阅读更多
一、概述 官方的 math 包中提供了取整的方法,向上取整 math.Ceil(),向下取整 math.Floor() 二、用法
|
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import ( "fmt" "math" ) func main(){ x := 1.1 fmt.Println(math.Ceil(x)) // 2 fmt.Println(math.Floor(x)) // 1 } |
要注意的是,取完整后返回的并不是真正的整数,而是 float64 类型,所以如果需要 int 类型的话需要手动转换 ... 阅读更多
一、概述 golang 生成随机数可以使用系统自带的 math/rand 包。 二、使用方法
|
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import ( "fmt" "math/rand" ) func main() { for i:=0; i<10; i++ { fmt.Println(rand.Intn(100)) } } |
这种情况下产生的随机数都是相同的,如果需要不同的随机数需要这样:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import ( "fmt" "time" "math/rand" ) func main() { r := rand.New(rand.NewSource(time.Now().UnixNano())) for i:=0; i<10; i++ { fmt.Println(r.Intn(100)) } } |
或者 [cr ... 阅读更多
一、摘要 godoc 是 go 默认自带的一个模块,提供了 go 语言的文档相关信息,一般情况下查询文档可以使用 godoc **来进行查询。 例如 godoc fmt,就会出现 fmt 包相关的信息: 二、 WEB 版文档 其实对大部分人来说,命令行界面看起来都是不友好的,满屏的黑屏白字就算是程序员也是会有抵触心理。 ... 阅读更多
一、概述 使用 golang 这么久了,到今天才发现还没有在 linux 上使用安装过,之前要么是在 windows 上安装,要么就是 linux 直接使用 yum 安装,都没有直接从源码装过,今天决定探索一番。 二、步骤 1 、下载安装包 官方下载地址:https://golang.org/dl 依次是 windwos ... 阅读更多