
Go
努力前行的小coder
左手JAVA右手GO
展开
-
uber关于go语言规范
本文老子github上的Uber对于go语言的规范,从中我们可以避免在开发过程中的坑.地址:https://github.com/xxjwxc/uber_go_guide_cnGo 语言编码规范Uber是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Gopher 圈熟知的zap、jaeger等。2018 年年末 Uber 将内部的Go 风格规范开源到 GitHub,经过一年的积累和更新,该规范已经初具规模,并受到广大 ...原创 2020-05-16 09:12:32 · 540 阅读 · 0 评论 -
GO和JAVA实现二分查找和交替打印奇偶数
二分查找和交替打印100以内的奇偶数 二分查找GO实现,与JAVA基本没有区别: GO:func BinarySearch(a []int, v int) int { n := len(a) if n == 0 { return -1 } low := 0 high := n - 1 for low <= high { mid := (low + high) >> 1 if a[mid] == v { return mid }...原创 2020-05-13 10:02:36 · 279 阅读 · 0 评论 -
GO和JAVA如何处理两个数组中的并集和交集
最近,在项目中碰到这样一个问题,我们在查看某个模块内容的是否,需要获取该角色下所有用户权限的集合,而某个角色下的用户权限不一样,那么我们需要去得到所有用户拥有的权限的一个并集,根据这个整理了关于go和java如何获取2数组的并集以及交集的小例子.GO实现并集:func main(){ a1 := []int{1,2,3,4,5} a2 := []int{2,3,4,5}...原创 2020-05-06 18:38:40 · 622 阅读 · 1 评论 -
go与java实现冒泡排序
众所周知,在算法里面,冒泡排序算是很经典的一个了,通常很多面试都会让我们手写冒泡排序,那么我们在写这个代码之前首先要了解什么是冒牌排序.知道其原理,这样我们才能用代码的方法来实现它.下面 我将用java和go 分别来实现一个简单的冒泡排序.冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到...原创 2020-05-04 10:57:19 · 227 阅读 · 0 评论 -
GO语言学习之-数组和切片(二)
之前,在一里面讲过关于数组以及切片的区别,都知道 数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。引言:例如:func sumArray(number [5]int) int{ sum := 0 for _, value := range number{ sum = sum + value } return...原创 2020-04-30 14:36:30 · 302 阅读 · 0 评论 -
GO之认证与授权
一般公司项目比较多,比较分散,但是对于都是公司的用户来说,用户数据一般是共享的,所以集成统一认证与授权的功能一般就必不可少,这样可以实现一个用户,分配一点权限,能访问公司很多项目. 一般的认证与授权方案有 OAuth、分布式 Session、OpenID 和 JWT 等.目前常用的是OAuth2,其重点在于为Web应用程序、桌面应用程序、移动设备以及室内设备的授权流程提供简单的客户端开...原创 2020-04-29 15:29:06 · 2503 阅读 · 0 评论 -
GO之redis基本操作(一)
在实际项目中,我们除了用到关系型数据库 ,其次用的最多就是非关系数据库, 一般都是作为缓存使用, 其主要目的是缓解数据库压力,其次,从缓存中拿数据是非常快的,这里我们主要介绍用的最多的 redis, 那go 是如何操作redis呢? 一.连接数据库package mainimport ( "fmt" "github.com/garyburd/redigo/red...原创 2020-04-29 14:40:22 · 676 阅读 · 0 评论 -
GO的利器之---channel
在GO语言中,channel是一个重要特性,同时也是区别与其它语言的不同之处,一个channel使得并发编程变得简单容易有趣. 在学习channel之前,我觉得我们有必要百度百科一下进程通信,因为channel其实就是一个处理通信过程的一个东西,首先我们要知道进程通信大致上可以分为低级进程通信和高级进程通信.(具体了解 百度百科讲的已经是很详细了.)低级通信由于进程的互...原创 2020-04-28 11:59:09 · 605 阅读 · 0 评论 -
go如何发送邮件
写在前面:本人从去年开始负责公司go项目,如果某些地方解释不对,请大佬多多批评,一定虚心接受并学习改正. 昨天,我们用java写了一个定时发送邮件的功能,因为本人目前在公司负责java和go的项目,所以,一般java实现的功能,我本人都喜欢换语言来实现一遍,一是为了比较他们的不同之处,二是防止手生,多写代码,毕竟是有好处的,下面我就将我自己写的关于go实现邮件发送功能的demo...原创 2020-04-27 10:29:01 · 1063 阅读 · 0 评论 -
go如何使用日志
众所周知,在一个项目中,日志是非常非常重要的,因为有时候我们找错误,发现问题,处理问题等等,其中最重要的一点就是依靠日志,所以一般一个项目完善不完善,从日志的设置上就可以大概有所判断,日志好不好,我想大家心知肚明.好了,废话不多说,我们来看下Go语言中的日志情况.(本文在翻译zap日志库中结合自己写的代码测试而出) Go语言提供的默认日志包是https://golang.org/p...原创 2020-04-24 10:59:20 · 1133 阅读 · 0 评论 -
go的web框架Iris和gorm搭建基础版本的增删改查
go语言 有很多优秀的web框架,于是乎,就自己动手 从零开始搭建一个demo,除了有些东西下载比较麻烦,其它的都很好弄,下面贴出我搭建的工程.在开始项目之前需要下载并安装好go的环境以及iris还有gorm的环境.一:首先贴出我的项目结构图:二:各分层情况代码 controlle层package controllersimport ( "github.com...原创 2020-04-23 16:29:02 · 3092 阅读 · 14 评论 -
带你玩转go语言中的json
一:标准的序列化和反序列化type Student struct { Id int64 Name string Age int64}func main() { s1 := Student{ Id: 1, Name: "红孩儿", Age: 18, } //序列化 b, err := json.Marshal(s...原创 2020-04-22 15:19:12 · 389 阅读 · 0 评论 -
go语言中的defer关键字
在Go语言里面 有一个关键字 我们经常会碰到 就是 defer ,关于defer我们需要记住以下几点:1.defer语句会在该函数结束的时候被调用,即使后面的语句运行时出现异常了defer语句仍然会被执行。2.如果defer语句中引用了参数,则该参数的值将是程序到defer这一行的时候的值,而与后面的语句没有关系。因此,defer通常用来释放函数内部变量。在看下面的代码:fu...原创 2020-04-22 11:40:31 · 440 阅读 · 0 评论 -
go语言中的关于结构体转map[string]interface{}的一些小坑
由于本人刚用go 开发项目不久,过程中出现很多问题 ,我都是一点点摸索出来并解决的,如果出现因为解决了问题,但是解释的不是很对,欢迎大佬指正,批评,一定虚心接受,并改正,慢慢学习.在使用go开发的过程中,经常需要将结构体转换成map[string]interface{},这中间有一个问题需要我们注意,就是Go语言中的json包在序列化空接口存放的数字类型(整型、浮点型等)都会序列化...原创 2020-04-15 09:28:23 · 2652 阅读 · 0 评论 -
GO语言学习之-数组和切片(一)
数组定义:1.用var定义(必须给定长度) eg: var arr[3] int2.如果用 := (必须定义初值)eg: arr:= [3]int{1,2,3}3.数组长度定义为[...],这样可以不用写数字来定义长度,它会根据初值自动给与长度。否则数组必须定义长度arr3 := […]int {1,2,3,4,5,6}切片定义:最简单的理解:空的数组就是切片 (...原创 2019-12-04 18:36:38 · 241 阅读 · 1 评论 -
GO语言学习之路(不定期更新中)
最近两周一直在学习go语言,所以决定开始在我的博客里面记录我对于一门新语言的学习,我在学习一门新的语言时候,总喜欢做笔记,然后去写简单的demo,从中去发现错误,在改正错误,对我而言,这样比一直看文档或者看视频什么的要学习的快,毕竟语言这门课程需要动手实践,不可以看看文档、看看视频,你就以为你会了,真的,有时候你以为真的只是你以为。(只有不断奔跑才能不被技术的浪潮击退,与君共勉)...原创 2019-11-30 11:08:52 · 372 阅读 · 0 评论