标签: 9 篇 golang 相关的文章

Go语言fmt包Printf方法详解

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 打印整型的二进制
阅读全文 ~

为localhost一步生成自签名证书

为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")
阅读全文 ~

go可变参数传数组值

在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是个可变参数, 传值是你可能想支持多个,但对于参数个数也清楚, 那要先定义个字符串数组。

阅读全文 ~

golang proxy

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不好用时可以用阿里的。

阅读全文 ~