网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
go1.11的module机制和dep/govendor机制问题
module机制和dep/govendor机制是否冲突?自从go团队推出`module`机制后,go团队和dep社区发生了一些冲突,有一篇有名的争论《关于GoModule的争吵》,读后给人一种错觉,似乎`module`机制和`dep/govendor`机制是不相容的。但是仔细分析二者的运行机制,其实两者并无冲突,反而是...
阅读全文
使用go语言的Console UI
go语言的GUI是一大短板,至今没有官方的跨平台GUI,第三方GUI库虽然有一些,例如`QT/GTK/wxWidget`的绑定,但是跨平台编译还是麻烦。如果我们只是需要一个简单的GUI,那么可以使用`ConsoleUI`,今天我推荐一个很不错的`ConsoleUI`:`gocui`,经本人试用,没有额外依赖关系,完全可...
阅读全文
go os.FileMode()传值问题
linux中的权限rwx分别对应421,相加的值为7,习惯了linux中权限命令使用,会将os.FileMode(777)误解等价于777权限,但是将777传入os.FileMode,你会发现打印出来的不是-rwxrwxrwx可能会想只要在编程的时候,在前面加个0不就行了?但是有情况是这样的,就是外部传入一个变量值是十...
阅读全文
Go语言实战: 编写可维护Go语言代码建议
由于篇幅量大,简书无法整篇发布整篇浏览跳转链接:[https://blog.gokit.info/](https://blog.gokit.info/post/go-best-practice/)目录**********原文链接:**[PracticalGo:Realworldadviceforwritingmaint...
阅读全文
Go的map中删除子map,内存会自动释放吗?
结论在Go中,map中存放map,上层map执行delete,子层map占用的内存会释放,无需手动先释放子map内存,再在上层map执行删除。实验在C++中,如果使用了map包含map的数据结构,当要释放上层map的某一项时,需要手动释放对应的子map占用的内存,而在Go中,垃圾回收让内存管理变得如此简单。__pack...
阅读全文
Go依赖包管理工具,3分钟掌握govendor
网上写govendor的博文不少,但从安装到介绍,总看上去有些**沉重**,下面奉上一篇简单的教程,3分钟入门。第1部分简明教程2步走,3分钟轻松搞定Go项目的依赖。第1步安装__goget-ugithub.com/kardianos/govendor第2步为项目增加依赖1.进入到项目目录2.使用`govendorin...
阅读全文
Go 1.9 sync.Map
原生的map在没有加锁的情况下用于协程是数据不安全,并且因为不安全,在编译的时候编译器也会报错。如果要在多个协程中使用同一个map变量,则需要自己进行加解锁操作。在Go1.9中,标准库中加入了协程安全的map,这个sync.Map有以下这个公开的方法:StoreLoadOrStoreLoadDeleteRange下面分...
阅读全文
Go语言实现ping命令
ping是使用ICMP协议ICMP协议的组成:Type(8bits)+Code(8bits)+校验码(checksum,8bits)+ID(16bits)+序号(sequence,16bits)+数据这些组成部分的含义:1)TypeICMP的类型,标识生成的错误报文2)Code进一步划分ICMP的类型,该字段用来查找产...
阅读全文
go语言扫描目录
__packagemainimport("io/ioutil""log""os""fmt")funcmain(){files:=scanDir("C:\\")for_,file:=rangefiles{fmt.Println(file)}}//扫描当前目录下文件,不递归扫描funcscanDir(dirNamestri...
阅读全文
go defer,panic,recover详解 go 的异常处理
golang中defer,panic,recover是很常用的三个特性,三者一起使用可以充当其他语言中try…catch…的角色,而defer本身又像其他语言的析构函数deferdefer后边会接一个函数,但该函数不会立刻被执行,而是等到包含它的程序返回时(包含它的函数执行了return语句、运行到函数结尾自动返回、对...
阅读全文
go validators用法详解 对struct字段进行参数验证
golang小菜一枚,业务中有对接口struct字段进行参数验证的需求,为了练手,自己造了个govalidators验证器的轮子,代码在github,使用的详细方法写到这里,欢迎大大们提出宝贵建议,也希望大家在使用过程遇到问题来这提问在编写golang接口时,需要对接收到的struct字段内容进行验证,比如__type...
阅读全文
一个把资源文件变成 go 语言变量的小工具
gores项目介绍把一个文件的内容变成一个go语言的变量的小工具。例如把`gtkbuilder`文件、`glade`文件、图标文件变成一个个go变量,编译后的程序运行时就不用再依赖外部资源了。使用说明`gores-namevarName-finputfile-pkgpackageName`__gores-hUsageo...
阅读全文
go程序执行时间统计
当时候需要去计算一段代码或一个程序所消耗时间的时候,就需要进行统计时间,用程序去计算某一段代码的执行所需要的时间远比用眼睛直接去看程序运行时间高很多。go语言中的time包中提供了函数来提供计算消耗时间,具体的使用方式如下案例所示:__bT:=time.Now()//开始时间eT:=time.Since(bT)//从开...
阅读全文
Go语言 字符串拼接性能优化
今天在查找Go资料的时候,偶然中在点进看云中的《Go入门指南》这本书,简单的看了下书中的内容,然后看到有一节内容是描述“误用字符串”的一个小节,从中了解到go中字符串拼接如果直接用+进行拼接的话,效率会比较低,当在for循环次数比较多的时候比较明显,然后我就测试了。那边书中上提供的是用另外一种方式,在for循环次数比较...
阅读全文