![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
Go语言学习笔记
辣椒炒肉真好吃
这个作者很懒,什么都没留下…
展开
-
Golang报错:Mixture of fields: value and value initializers
出现这个错误的原因在于初始化时,设置值的方式错误!请看举例:type Animal struct{ Eyes int Kind}type Kind struct{ Gender int}在初始化时,可能随手就写成:animal := Animal{ Eyes: 2, Gender: 1,}这样的写法将产生Mixture of fields: value and value initializers错误,原因在于上面使用了key:value的形原创 2021-08-20 11:14:58 · 1553 阅读 · 0 评论 -
Golang 结构体作为Map的Key
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数..原创 2021-05-28 11:21:29 · 3700 阅读 · 0 评论 -
go build: -i flag is deprecated
官方解释:The -i flag installs the dependencies of the named packages as well. The -i flag is deprecated. Compiled packages are cached automatically.大意是以后,编译APP时不需要增加-i参数,sdk自动帮我们处理。原创 2021-05-18 16:04:46 · 3619 阅读 · 4 评论 -
Golang 平滑重启之优雅关机
前言作为一个web服务,升级操作是一个必不可少的过程,但是在升级之前还有个操作,那就是:退出服务(关机),当然我们可以暴力的终止程序然后启动新服务,但是这是基于业务不敏感的情况下,正常我们需要让用户的一次请求完成之后才终止程序,幸运的是Go在1.8+上面增加shutdown方法可以很简单的实现此过程。一、shutdown机制先说明一下Shutdown工作的机制:当程序检测到中断信号时,我们调用http.server种的shutdown方法,该方法将阻止新的请求进来,同时保持当前的连接,知道当前连接完原创 2021-04-30 16:37:32 · 832 阅读 · 1 评论 -
Golang sort排序
在程序开发中,不可避免的需要给数据集进行排序,如果在语言级别不提供支持的话,我们则需要自己写算法进行数据的处理,麻烦还不一定高效。幸好Golang在标准包中,官方有提供sort包中Sort()函数提供排序功能。并且天然支持[]int,[]float64,[]string切片的排序查找功能,并且也能够实现对自定义类型集合的排序。下面我们先来看下golang中Sort函数的结构是什么样的。func Sort(data Interface) { n := data.Len() quickSort(dat原创 2021-01-21 11:05:39 · 1126 阅读 · 0 评论 -
Golang 自带log包的简单使用
俗话说的好,流水的代码,铁打的日志。日志是我们在程序出错时能够快速定位错误位置的有力保证!所以说工欲善其事必先利其器!Go语言自带了一个小小的简便日志包:log,虽说功能不多,但是对于一些不大的项目来说,其实也够用了,与其导入一个功能繁多,但是很多功能用不上的log包,不如使用自带的功能,稳定且不会增加编译后的文件大小。并且log包是线程安全的,也就是说你完全可以放心的在多个goroutine中使用,而不用有任何的担心。使用log包打印日志有两种开启方式:1.直接使用log包为我们封装好的方法2.初原创 2021-01-21 10:59:01 · 1266 阅读 · 0 评论 -
Go结构体能比较吗?Go的类型比较,==或DeepEqual比较!
目录前言一、Go语言的比较符语法介绍1.不能使用比较符比较2.可以使用比较符比较的特殊类型二、DeepEqual比较1.DeepEqual源码前言类型比较是编程中离不开的手段,在Go里面的比较涉及到普通的数值类型,切片数组,map,结构体,函数,指针,接口等,有些可以单独比较,有些不能,有些可以组合起来比较,有些组合起来不能比较诸如此类,由于个人水平有限,下面就这些问题做些简单探讨,如有不当之处,望不吝指教!一、Go语言的比较符语法介绍Golang的比较符有六种,它们比较的都是值类型;原创 2021-01-12 15:07:54 · 3004 阅读 · 1 评论 -
Golang断点续传
目录前言一、Seek介绍二、Seek的使用1.SeekStart2.SeekCurrent3.SeekEnd三、断点续传前言对于一些较大文件的上传下载,我们期望的是能够一次就完成,这样不仅节省时间也节省用户流量,用户体验也会更好等等。但是网络环境的不可靠性导致较大文件的传输一次就完成的把握实在不是很大,所以针对这种情况,人们就考虑能否让失败的任务在下次继续时接着传输未传输的部分,而已经传输过的则不再传输,由此,断点续传被创造出来了。一、Seek介绍Golang中的断点续传实现最简便的方法是借助S原创 2021-01-08 15:01:39 · 1819 阅读 · 0 评论 -
bufio中Scanner切割函数用法
文章目录一、Scanner是什么?二、使用1.ScanBytes2.ScanWords3.ScanRunes4.ScanLines5.自定义Split一、Scanner是什么?Scanner为读取数据提供了一些方便的接口,通过切割方法可以逐字节,逐字,逐词组,逐行读取,某些场景下使用scanner可以很方便的解决问题。二、使用func main() { s := strings.NewReader("Hello world") bs := bufio.NewScanner(s) bs.Spl原创 2021-01-07 16:01:12 · 1241 阅读 · 0 评论 -
浅析Golang Http设置api请求路径原理
文章目录前言一、使用步骤?1.设置api路径及函数2.监听HTTP二、源码追踪1.如何保存HandleFunc2.http.ListenAndServe如何调用保存进map的函数结论前言现如今的应用都提倡的是前后端分离,本文就前后端关联必备的api来看看,Golang官方自带的http是怎么实现设置api地址的。一、使用步骤?1.设置api路径及函数代码如下:http.HandleFunc("/test", func(writer http.ResponseWriter, request *原创 2021-01-06 17:33:50 · 1028 阅读 · 0 评论