一、接口的概念接口是一种抽象类型,是对其他类型行为的概括与抽象,从语法角度来看,接口是一组方法定义的集合。很多面向对象的语言都有接口这个概念,但Go语言接口的独特之处在于它是隐式实现。对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必需的方法即可。这种设计让编程人员无须改变已有类型的实现就可以为这些类型创建新的接口——对于那些不能修改包的类型,这 ......
370
0
0
2022-05-15
gotoolgotool是一个小而全的Golang工具集,主要是将日常开发中常用的到方法进行提炼集成,避免重复造轮子,提高工作效率,每一个方法都是作者经过工作经验,和从以往的项目中提炼出来的。2021-7-9更新内容详细使用请看文档添加文件IO操作工具FileUtils添加验证码生成工具CaptchaUtils添加文件目录压缩和解压缩工具ZipUtis字符串 ......
335
0
0
2022-05-13
源码分析goFrame 框架是一款国产的 golang web 框架,它事无巨细的把我们可能用到的组件都进行了封装,目前 Github star 已高达 5.7K ,人送“封装狂魔”的称号。既然如此,那我们就来学习一下别人是怎么来封装的。我们知道 goFrame 框架的 main 文件非常简单,以下是官方模板的 main 文件示例:package main ......
353
0
0
2022-05-12
使用 GOLANG 发送邮件我们一起来回顾一下上一次咱们说到的GO 的验证码案例验证码种类梳理验证码库的安装验证码库的源码介绍实操,编码验证码效果展示想看看GO 咋做验证码的,欢迎查看文章 GO 的验证码案例生活和工作中,咱们都离不开邮件的收发,要么在手机上查收和发送,要么在自己的电脑前面进行邮件编辑和处理可是,我们会发现,很多时候,某类邮件,咱们每天都必须 ......
392
0
0
2022-05-12
从毕业到现在已经接近两年了,在这段时间里,我日常开发都是使用的 Java,因为大学自学的是 Java,然后毕业找到的工作也是做 Java 开发的。现在做 Go 其实也没多久,但还是想把自己的一些经历和学习经验都记录下来,要是能帮到你就更好了哦!其实 Go 在这两年一直都挺火的,毕竟是 Google 的亲儿子,又凭借着 docker 和 k8s 这两大杀器,自 ......
307
0
0
2022-05-11
go 基础语法 (程序结构控制)条件语句ifif的条件里是不需要括号的if 的条件里可以赋值if 条件里赋值的变量作用于就在这个 if 语句里面func readsfile() {const filename = "abc.txt" // 注意创建文件// 写法1 比较多// go 语言的函数是可以返回两个值的 countents, err := iou ......
437
0
0
2022-05-11
时不时的有人问我一些关于 Go 语言学习路线、学习资源方面的问题,这篇文章就来详细说一说。借此希望给那些正在学习,或是想学习 Go 语言的朋友一些帮助。需要说明的是,按照我推荐的来学习,完全掌握 Go 相关开发知识,并且找到 Go 开发的工作应该是问题不大的,当然具体能达到什么样的程度,得看个人了。说明一下,文中提到的所有书籍,都可以在公众号【rosedua ......
355
0
0
2022-05-10
写这篇文章的目的,是为了帮助更多的人理解 rosedb,我会从零开始实现一个简单的包含 PUT、GET、DELETE 操作的 k-v 存储引擎,你可以将其看做是一个简易版本的 rosedb,就叫它 minidb 吧(mini 版本的 rosedb)。无论你是 Go 语言初学者,还是想进阶 Go 语言,或者是对 k-v 存储感兴趣,都可以尝试自己动手实现一下, ......
356
0
0
2022-05-10
go 基础语法(变量常量枚举)变量定义使用 var 关键词var a, b, v boolvar s1, s2 string = "hello", "world"可放在函数内,或直接放在包内使用 var() 可以定义多个变量编译器可以自动区分变量类型使用 := 定义变量 (只能在函数内使用) package main im ......
378
0
0
2022-05-10
今天开发遇到了 错误如下API server listening at: 127.0.0.1:49819 time="2021-07-05T14:05:26+08:00" level=info msg="starting api server\n" time="2021-07-05T14:05:26+08:00" level=fatal msg="Par ......
470
0
0
2022-05-09
golang nil 切片和空切片区别?var slice1 []int //nil 切片 slice2 := []int{} //空切片 slice3 := make(int[],0) //空切片 首先来看下切片底层数据结构:type SliceHeader struct { Data uintptr //指向的引用数组地址 ......
398
0
0
2022-05-09
首先看github 包github.com/wendal/go-oci8那么这里记录下遇到的问题1. go get 执行报错执行 go get github.com/Kylelkh/go-oci8如图:这里也可以看到 我执行了,很多次…解决: 不需要解决,就是报错的.没关系,代码会下载下来在你的 gopath 下的 src 下的文件夹里.如图:2. 继续 修 ......
443
0
0
2022-05-07
RPC对RPC不了解的人,或许会纠结其与TCP、HTTP等的关系。后者是网络传输中的协议,而RPC是一种设计、实现框架,通讯协议只是其中一部分,RPC不仅要解决协议通讯的问题,还有序列化与反序列化,以及消息通知。一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,ClientOptions以及ServerOptions,这个Op ......
389
0
0
2022-05-07
如何学习 GoGo 语言的设计初衷针对其他语言的痛点进行设计加入并发编程为大数据,微服务,并发而生的通用编程语言Go 语言很特别没有”对象”,没有继承多态,没有泛型,没有 try/catch有接口,函数式编程, CSP 并发模型( goroutine + channel )学习 go 语言简单,应为语法简单通过示例学习 Go语法部分:每个小片段解决实际问题综 ......
517
0
0
2022-05-07
golang select 详解channel详解文章中讲到过channel的阻塞写、阻塞读、非阻塞写、非阻塞读,这里不再赘述,需要说明的是,select不止用来做channel的非阻塞操作,主要是用来作为多路复用操作channel的,机制和linux的select很像不同的写法会触发不同的机制,下面我们看看示例// 阻塞读,对应channel的 chanr ......
514
0
0
2022-05-06