这里列举的Go语言常见坑都是符合Go语言语法的,可以正常的编译,但是可能是运行结果错误,或者是有资源泄漏的风险。 1. 可变参数是空接口类型 当参数的可变参数是空接口类型时,传入空接口的切片时需要注意参数展开的问题。 不管是否展开,编译器都无法发现错误,但是输出是不同的: 2. ...
这里列举的Go语言常见坑都是符合Go语言语法的,可以正常的编译,但是可能是运行结果错误,或者是有资源泄漏的风险。 1. 可变参数是空接口类型 当参数的可变参数是空接口类型时,传入空接口的切片时需要注意参数展开的问题。 不管是否展开,编译器都无法发现错误,但是输出是不同的: 2. ...
引用自 http://studygolang.com/articles/9701 go只提供了一种循环方式,即for循环,在使用时可以像c那样使用,也可以通过for range方式遍历容器类型如数组、切片和映射。但是在使用for range时,如果使用不当,就会出现一些问题,导致程序运行 ...
在go语言中的切片变量其实就是一个地址,我们先来看一段代码: func test_arr() { a := []int{1, 2, 3} var c [][]int b := a c = append(c, b) c = append(c, b) fmt.Println(c ...
Go语言结构体转json的坑 标签(空格分隔): go json.Marshal() 代码示例 } ...
IP预留部分 RFC 1918 为私有网络预留出了三个IP 地址块,如下: A 类:10.0.0.0~10.255.255.255 B 类:172.16.0.0~172.31.2 ...
Go语言有着很多的日志管理库,比如star数最多的logrus,然而logrus库并不自带日志切割功能,想要做到日志切割,就需要用到file-rotatelogs库,这里就有个小问题。 我在刚开始用的时候,代码如下 后来在运行的时候发现这段代码根本就不进行日志切割,后来在对比github ...
最近正在用Go语言做一个项目,今天在用http包读取客户端发过来的POST数据时遇到了一点小麻烦,就下面这段代码,死活读不到数据: 返回的错误值是EOF。通过检查header信息,发现content-type是application/x-www-form-urlencoded。检查 ...
在用gorm创建表时,如果列对应的属性首字母为小写时(如下面User表的password属性),gorm不会将这一属性作为表的一列创建出来。 只有当结构体的某一属性首字母为大写时,gorm才会将 ...