
golang
choumin
这个作者很懒,什么都没留下…
展开
-
go语言编写定制的源码包
在go语言中是通过包来管理源码的,我们平时会用各种各样的第三方源码包来构建自己的程序,那么如何编写一个定制的源码包呢?这要求我们知道一些关于源码包结构的基本理论。首先,回顾我们平时使用源码包的过程,比如"fmt"包, 通过import "fmt"导入源码包 通过fmt.Println()调用源码包里的方法 在这里,"fmt"是一个相对路径,它的绝对路径是:$GOPATH/src...原创 2019-05-05 22:30:11 · 438 阅读 · 0 评论 -
go语言中使用new和make创建map时的差异
在go语言中,可以使用new和make来创建map类型的变量,但是它们之间有很明显的不同,使用new来创建map时,返回的内容是一个指针,这个指针指向了一个所有字段全为0的值map对象,需要初始化后才能使用,而使用make来创建map时,返回的内容是一个引用,可以直接使用。他们之间的差异大概如下图所示:下面来看它们的具体用法使用new来创建并使用map: //使用n...原创 2019-05-06 23:26:03 · 17715 阅读 · 0 评论 -
go语言中json数据的读取和写出
go自带json库,在使用时需要通过 import "encoding/json"来导入该库。在读取和写入json数据之前需要定义相关的结构体来对应被操作的json数据的格式,并且结构体中需要导出或导入的变量首字母大写。其中,json.Marshal()用于将一个对象转换为json格式的字节数组,json.Unmarshal()用于将json格式的字节数组转换为一个对象。具体使用示例如下所示:...原创 2019-05-06 23:45:58 · 3778 阅读 · 0 评论 -
go语言求任意类型切片的长度
最近用go写程序时遇到一个问题——求任意类型切片的长度。作为一个初学者,刚刚学了接口和切片,知道了每个类型都实现了一个空接口interface{},那么如果接口类型作为函数的参数,那它应该是可以接收任意类型的实参的,带着这样的想法就写出了下面的代码:func size(ins []interface{}) int { return len(ins)}然后调用 ...原创 2019-05-10 18:01:34 · 3366 阅读 · 2 评论 -
go语言中使用正则表达式判断IPv4地址是否合法
go语言内置的regexp包实现了正则表达式搜索。通过这个包提供的方法,我们可以使用正则表达式判断一个IPv4地址是否合法。具体代码如下所示:package mainimport "regexp"import "fmt"func main() { str := "1.2.3.4" ipReg := `^((0|[1-9]\d?|1\d\d|2[0-4]\d|25[0...原创 2019-05-13 17:19:22 · 4973 阅读 · 0 评论 -
go语言中向文件尾部追加内容
本来是一个很简单的问题,但最近两年多一直用python写代码,习惯了那种简单的文件操作方式。在go里面打开文件时要指定文件读写模式,例如O_CREATE、O_RDONLY等等,和C非常相似,以前用的时候还记得很清楚。今天遇到的一个问题是:我以O_CREATE| O_APPEND 打开文件,怎么都无法写入,还不报错!最后仔细看了看文档,才知道还要加上O_RDWR才能写入。一个简单而初级的错误,还是...原创 2019-05-18 19:35:59 · 5024 阅读 · 0 评论