Golang
文章平均质量分 74
致力于分享golang基础知识和应用实战,让读者可以更好的获取到go语言相关的知识。
g-Jack
硕士毕业于北京交通大学,拥有6年开发工作经验,热爱编程,乐于分享,擅长微服务和中间件。
展开
-
【HSQL】——lateral view 及regexp_replace联合使用提取数据
最近在处理对账需求的时候,需要核对两个hive中的指定字段的数据值是否相同,现在对需求进行抽象和简化,从下面hive中提取这个字段cond_stats中每个key的值。遇到这种在复杂json中提取目标数据的需求的时候,很多的时候思路非常重要,需要根据存储的格式,和我们想要的目标数据,进行逐层分析,最终通过灵活的正则表达式来达到我们的目的,对于json中存储数组的情况,往往需要用到lateral view来进行裂变行。原创 2023-03-21 09:46:32 · 4668 阅读 · 1 评论 -
【golang之路】——govaluate
govaluate虽然支持的类型和操作优先,但是对于一些需要通过前端页面传递参数生成判断表达式的场景还是能非常好的实现,所以多掌握一些golang的库,可以让我们在业务实现的时候更加的灵活。原创 2022-11-01 21:01:47 · 12455 阅读 · 14 评论 -
【Golang之路】——结构体匿名字段
结构体可以包含一个或多个匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型也就是字段的名字。匿名字段本身可以是一个结构体类型,即结构体可以包含内嵌结构体。Go语言中的继承是通过内嵌或组合来实现的,所以可以说,在Go语言中,相比较于继承,组合更受青睐。in1 intin2 int}b intc float32}// 使用结构体字面量}通过类型outer.int。原创 2022-10-11 16:22:26 · 1155 阅读 · 0 评论 -
【Golang之路】——接口
type 接口类型名 interface{方法名1( 参数列表1 ) 返回值列表1方法名2( 参数列表2 ) 返回值列表2…}在go语言中我们使用interface关键字来定义接口。关于接口需要注意的是,只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要定义接口。不要为了接口而写接口,那样只会增加不必要的抽象,导致不必要的运行时损耗。...原创 2022-08-17 15:47:33 · 1191 阅读 · 0 评论 -
【Golang之路】——匿名函数和闭包
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包=函数+引用环境。var x intx++return x}}调用这个函数会返回一个函数变量。in:=incr()通过把这个函数变量赋值给in,in变量就成了一个闭包。所以,in中就保存着对x的引用,可以想象成 in中有着一个指针指向x或者说in中有x的地址由于in中有着指向x的指针,所以可以修改x,并且可以保持状态。}...原创 2022-08-09 15:49:28 · 22115 阅读 · 5 评论 -
【Golang实战】——XPath解析网页
之前用Python写过一个解析网页的脚本,最近开始研究golang,所以准备用golang将其重构,但是这个脚本中使用了到了python中的xpath库,所以研究了下,golang也有对应的库,这个库比我们使用正则从网页中获取我们需要的内容更简单些。通过上面代码我们就可以从页面中将我们需要的ip+port内容获取到,我们可以根据这种格式解析我们自己想要的网页内容。这种方式比第一种方式使用起来麻烦一些,并且接口和文档都不是非常的完善。golang中多个包来实现xpath,我们再看下libxml2。...原创 2022-08-08 17:51:53 · 20130 阅读 · 0 评论 -
【Golang之路】——slice总结
Go中的切片(slice)数据结构对比java来说,还是一个稍微新的概念,但是数组对于我们来说确实一个非常熟悉的数据结构,但是由于slice在go编程中使用的非常频繁,所以今天我们来详细的总结一下这个数据结构。数组是相同类型的,一组内存空间连续的数据,他的每一个元素的数据类型都是一样的,且数组的长度一开始就确定好了,且不能做变动,而切片的长度是可以自动扩容的。在go语言中,数组的传递是通过值拷贝的方式,传递切片是通过引用的方式,这里说的引用,指的是 切片数据结构中。...原创 2022-08-03 17:08:30 · 18764 阅读 · 0 评论