package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
min := 10
max := 30
fmt.Println(rand.Intn(max - min + 1) + min)
}
11篇 golang related articles
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
对指定目录
go test ./... -coverprofile=coverage.out
go tool cover -html=coverage.out
import (
"reflect"
"runtime"
)
p := reflect.ValueOf(i).Pointer()
n := runtime.FuncForPC(p).Name()
go mod tidy
可以下载相关的依赖,
go clean -modcache
可以清理已下载的依赖
Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。
General
%v
以默认的方式打印变量的值%T
打印变量的类型
Integer
%+d
带符号的整型,fmt.Printf("%+d", 255)
输出+255
%q
打印单引号%o
不带零的八进制%#o
带零的八进制%x
小写的十六进制%X
大写的十六进制%#x
带0x的十六进制%U
打印Unicode字符%#U
打印带字符的Unicode%b
打印整型的二进制
go get -u
go mod tidy
为localhost一步生成自签名证书
openssl req -x509 -days 365 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
在https://github.com/qiniu/qmgo 中 有个方法是传排序参数,通常是一个或多个。
func (q *Query) Sort(fields ...string) QueryI {
if len(fields) == 0 {
// A nil bson.D will not correctly serialize, but this case is no-op
// so an early return will do.
return q
}
var sorts bson.D
for _, field := range fields {
key, n := SplitSortField(field)
if key == "" {
panic("Sort: empty field name")
}
sorts = append(sorts, bson.E{Key: key, Value: n})
}
newQ := q
newQ.sort = sorts
return newQ
}
若需传递多个fields, fields是个可变参数, 传值是你可能想支持多个,但对于参数个数也清楚, 那要先定义个字符串数组。
export GOPROXY=https://mirrors.aliyun.com/goproxy/
// or
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy
export GOPROXY=https://goproxy.io,direct
有时goproxy.io不好用时可以用阿里的。
go 软件包fmt使用与C的printf和scanf类似的功能实现格式化的I / O。
概要:
%v 默认格式的值,打印结构时,加号(%+ v)添加字段名称
%#v 该值的Go语法表示形式
%T 值类型的Go语法表示形式
%% 文字百分号;没有任何价值
Boolean:
%t 单词true或false
Integer:
%b 2进制
%c 相应的Unicode代码点表示的字符
%d 10进制
%o 8进制
%O 以0o为前缀8进制
%q 使用Go语法安全地转义的单引号字符文字。
%x 16进制的a-f小写字母
%X 16进制的A-F大写字母
%U Unicode格式:U + 1234;与“ U +%04X”相同