
golang
文章平均质量分 64
eventer123
这个作者很懒,什么都没留下…
展开
-
不一样的go语言-athens私仓安装
前言 本系列文章曾多次提及go的依赖管理,提到了私仓,构件系统等概念,也曾提及当前流行的go构件系统,如athens,jfrog artifactory。鉴于jfrog的收费特性,本文只选择athens着重介绍。包括安装、使用、踩坑、源码分析等。简要介绍 在依赖管理方面,go相较于其他语言,其提供了从开放的源码仓库(github、bitbucket等)动态获取源码的工具,最早是go ge...原创 2019-04-15 13:47:26 · 1255 阅读 · 0 评论 -
不一样的go语言-玩转语法之二
本文继续玩转语法,是为之二。 I/O(Input/Output),输入输出是计算机最为突出的特点,也可以说是计算机最为核心的功能。没有I/O,计算机就是一堆废铜废铁。从最低层的电子元器件开始,计算机科学家与工程师们,就一直奔跑在追求卓越的I/O性能的道路上。计算机每一次大跨越,就是一次I/O的脱胎换骨。从机械时代到电子管,到晶体管,再到集成电路,再到未来的量子时代,无不预示着I/O对于计算...原创 2019-07-01 14:14:10 · 157 阅读 · 0 评论 -
不一样的go语言-go没有的语言特性
相信很多从其他语言转向go语言的人,或者是几乎所有初学go语言的人(我相信目前还没有学校将go作为教学语言,所以未来的IT工程师的第一语言都不会是go),都会在学习的过程中将go与自己的第一语言、第二语言作比较,带着第一、第二语言的思维方式去学习go。同时会对go语言的一些看似“奇葩”的语法不解,这里我尝试向大家介绍go没有什么或者为什么没有。语法篇语法示例(java)说明...原创 2019-07-09 14:57:06 · 228 阅读 · 0 评论 -
不一样的go语言-玩转语法之一
这段时间为俗事所累,疲以应付,落下了不少想法,错过了更新的日子。这个专题开始之际,已经准备了不下十几个主题,而在写作的过程中,又有新想法与主题涌现出来。未来预计想写写的内容主要包括:玩转语法系列Context的来龙去脉函数、闭包与范畴论的关系线程与协程之争通道的那些事 今天的玩转语法系列,先起个头,调子稍微低一点,主要想与大家分享一下go语言在实践中的优美之处。用不同的语言来...原创 2019-06-09 22:45:46 · 186 阅读 · 0 评论 -
不一样的go语言-athens源码概览
前言 上一篇文章介绍了athens私服的安装以及vgo download protocol的简要介绍。本文着重介绍go proxy sever的实现原理以及athens是如何实现的。go get原理 当GOPROXY没有设置的时候,通过-x参数,可以看到go get获取module的详细过程。[eventer@localhost]# go get -x github.com/gin-g...原创 2019-05-03 16:07:48 · 483 阅读 · 0 评论 -
不一样的go语言-一样的语法
前言 上一篇入门篇算是初识庐山真面目,我们知道了一个go程序的构成,在这里总结一下。//包名package//导入包import "fmt"//main方法,程序入口func main() { //程序主体 fmt.Println("Hello World!")} 那么,作为一个经验丰富的程序员,接下来很自然地就是看看它的语法是怎么样的,怎么声明变量、...原创 2019-04-15 10:04:10 · 198 阅读 · 0 评论 -
不一样的go语言-不同的语法之type
前言 在go语言中,type用于类型定义(type definition)与类型别名(type alias)。这两者的差别从名字上已经可以初见端倪。 类型定义即定义新类型,是一个全新的类型,但可能与被定义类型存在一些关系,如类型转换,方法继承等。类型定义在各语言中有不同的体现,如Java是用class, interface等关键字作类型定义,在python中也是使用class关键字。只不过...原创 2019-04-15 10:06:15 · 643 阅读 · 0 评论 -
不一样的go语言-不同的OO
前言 go语言因为产生时代的原因,大神们在设计go时,不得不考虑业界的流行趋势(编程理念),使得go既可以面向过程编程,也可以面向对象编程。这里不探讨两者的优劣,存在即是合理,面向过程编程经久不衰,而面向对象当今红红火火。如题所示,本文只计划聊一聊go的面向对象编程。语法面向对象离不开其三大特性,封装、继承、多态。那么go在语法层面是怎么实现这个的呢?先来看一下封装,示例如下:type...原创 2019-04-15 10:07:34 · 335 阅读 · 0 评论 -
不一样的go语言-gopher
前言 gopher原意地鼠,在golang 的世界里解释为地道的go程序员。在其他语言的世界里也有PHPer,Pythonic的说法,反而Java是个例外。虽然也有Javaer之类的说法,但似乎并不被认可。而地道或者说道地,说的是gopher写的代码无不透露出go的独特气息,比如项目结构、命名方式、代码格式、编码风格、构建方式等等。用gopher的话说,用go编写代码就像是在画一幅中国山水画,...原创 2019-04-15 10:08:53 · 1406 阅读 · 0 评论 -
不一样的go语言-error
前言 go语言的error处理方式,在目前流行的编程语言中属于刺头。似乎天生就是用来有别于他人标记。TIOBE排行榜全十除了C语言,无一例外是try catch的阵营。而排在go之前的语言除了C与perl外,同样是try catch的忠实拥趸。那么go的设计者为什么要这么做呢,只是为博人眼球吗?关于error 在go语言的定义中,error不一定表示一个错误,它也可以表示其他信息。在标准...原创 2019-04-15 10:09:58 · 303 阅读 · 0 评论 -
不一样的go语言-构建系统与构件系统
前言 代码的最后一步是构建成计算机可识别的二进制数据,然后才得以在计算机上运行。如果你曾经写过有点规模(至少数十个以上独立的源文件,且需要依赖第三方包)C语言项目,必定对C语言项目的构建过程印象深刻。或者当你曾经在linux系统中使用rpm命令安装程序 时,系统一遍又一遍不厌其烦地提醒你缺少依赖时,不知那时的心情如何?前一个问题可归属于构建系统(Build Systems, Build Aut...原创 2019-04-15 10:10:55 · 542 阅读 · 0 评论 -
golang 广播
发送端package mainimport ( "fmt" "net" "time")func main() { var ( conn net.Conn err error ) if conn, err = net.Dial("udp", "192.168.197.255:8080"); err != nil { panic(err) } defer ...原创 2019-07-30 14:00:04 · 771 阅读 · 0 评论