随笔分类 - Golang
Golang填坑埋坑
摘要:原文链接:http://zhoubotong.site/post/6.html 常用的排序算法各种语言相同,这里大致介绍下go的常用排序,废话不多说,直入正题: 冒泡排序 package main import ( "fmt" ) func bubbleSort(slice []int) []int
阅读全文
摘要:原文链接:http://zhoubotong.site/post/3.html一. Golint介绍 Golint 是一个源码检测工具用于检测代码规范 Golint 不同于gofmt, Gofmt用于代码格式化 Golint会对代码做以下几个方面检查 package注释 必须按照 “Package
阅读全文
摘要:消息队列废话不多说了,直切正题吧:直接去https://github.com/nsqio/nsq/releases下载编译好的执行文件,比如我下载的是nsq-1.2.0.linux-amd64.go1.12.9.tar.gz 直接解压后(我的重命名了nsq-1.2.0):bin目录里就会出现一大堆n
阅读全文
摘要:引用原文 原文链接 http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/ 问题描述 直入本文要描述的问题:网站流量上来了,高并发负载是不可避免滴问题了,当服务端需要处理大量耗时的任务时,我们一般都会考
阅读全文
摘要:通常大家开发大部分是本地git push 提交,服务器上git pull 手动更新。git 可以使用webhook实现自动部署。webhook是仓库平台的一个钩子事件,通过hook 钩子监听代码,回调通知(通知地址就是你在各个git仓库平台中填写的webhook地址,一般在你的某个项目仓库如mypr
阅读全文
摘要:手册上关于这块的解释感觉不是很详细清晰,经过几个示例自己总结了下这块的用法。 方法表达式:说简单点,其实就是方法对象赋值给变量。 这里有两种使用方式: 1)方法值:隐式调用, struct实例获取方法对象 2) 方法表达式:显示调用, struct类型获取方法对象, 需要传递struct实例对象作为
阅读全文
摘要:发现一个验证字符串是否包含中文滴时候,一个比正则更好使滴方法,而且是golang 自带滴验证。 不需要自己写正则验证,代码如下: package main import ( "fmt" "regexp" "unicode" ) func main() { s1 := "我是中国人hello word
阅读全文
摘要:今天在写gin接口的时候,每次添加或修改个接口都需要重启项目才能测试,感觉很麻烦。 因为beego有bee工具,bee run启动项目fsnotify会监控文件变动,经查发现在iris项目中有个插件支持热重启。 使用方法如下: # 安装rizla包 $ go get -u github.com/ka
阅读全文
摘要:当我们通过把一个现有(非interface)的类型定义为一个新的类型时,新的类型不会继承现有类型的方法。 神马意思?来一段简短错误的代码: 输出: 初步看代码貌似没啥问题。实际报错“myMutex类型没有字段或方法锁”?怎么解决?如果我们确实需要原有类型的方法,可以定义一个新的struct类型,用匿
阅读全文
摘要:在“range”语句中生成的数据的值其实是集合元素的拷贝。它们不是原有元素的引用。这就意味着更新这些值将不会修改原来的数据。我们来直接看段示例: 如果我们需要更新原有集合中的数据,使用索引操作符来获得数据即可: 好,重点来了!重点来了!重点来了!,重要的话说三遍,大部分博友们可能会踩坑. 这里我提前
阅读全文
摘要:recover 仅在延迟函数 defer 中有效,在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果.重要的事再说一遍:仅当在一个defer函数中被完成时,调用recover()才生效。 我们来一段错误的代码: 输出: 修改下,正确的代码: 输出: 重要的事再说一遍:re
阅读全文
摘要:今天使用iota 发现一个问题。定义别名类型的时候 调用函数报错。废话不多说,我们看一段示例(关于iota的用法这里就不介绍了,手册介绍滴比较详细): 报错的意思是:不能在参数中使用x(type int)作为类型Aliasint来测试 分析:因为int 被别名化了。使用额外同类型变量不被支持,为啥?
阅读全文
摘要:说到多变量赋值时,先计算所有相关值,然后再从左到右依次赋值,但是这个规则不适用于python我们来看一例: 输出结果: 有的朋友会认为,结果不应该是这样么?(但是python下输出的结果却是下面的)? 事实并如此,我们来看赋值顺序这段的理解: 同样的多变量赋值却不适用于python. 另外:我们要注
阅读全文
摘要:好久没写博客了,最近忙于一些杂事,看见有几个博友留言了,未能及时回复,稍后晚点回复诸位博友。不多说了,windows安装beego(请先确保git环境已安装并设置了git环境变量。这个简单网上很多教程了) 1、beego 的安装 报错: 从报错信息看错是ssl验证读取超时问题。解决办法:执行: 再次
阅读全文
摘要:如何用golang搭建一个web服务呢?菜鸟官网的go web编程教程已经介绍了web服务器的工作原理,这里就不赘述了。 我们先看个例子:http.go go run http.go命令运行程序。之后在浏览器中输入地址: http://127.0.0.1:8000/test?uid=10086,看下
阅读全文
摘要:关于闭包函数,之前在聊过。这里忽略了一点,不管是Go/Php/Python,闭包都存在局部变量的引用。我们还是先看个例子: PHP示例: 以上输出: 相信很多朋友会说:不是应该输出 0 1 2吗?好,继续,我们来看一个Golang的闭包示例: 以上输出:(这里输出的内存地址会根据机器的不同而有所不同
阅读全文
摘要:这是可能也许是容易混淆滴,先上1个例子: 上面会输出: 我们稍微改动下: 上面会输出: 可见声明的全局变量var nickname 在函数change里面重载更新了,再次输出时已经是被更新后的值。我们再看一个函数变量域 上面会输出: 通过上面几个例子,我想大家也应该有深入的理解啦。
阅读全文
摘要:Go只提供类型而不用写字段名的方式,也就是匿名字段,也称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。 举个例子,看实例可以更具体化理解: 通常struct定义的时候是字段名与其类型一一对应,上面通过匿名引用的方式而
阅读全文
摘要:直接上代码看个例子吧: 上面的例子我们可以看到直接返回了两个参数,当然我们也可以命名返回参数的变量, 这个例子里面只是用了两个类型,我们也可以改成如下这样的定义,然后返回的时候不用带上变量名,因为直接在函数里面初始化了: 但是:如果你的函数是导出的(首字母大写),官方建议:最好命名返回值,因为不命名
阅读全文
摘要:直接上一实例: 注意:在 for 循环的 initialize(a:=0) 中,此时 initialize 中的 a 与外层的 a 不是同一个变量,initialize 中的 a 为 for 循环中的局部变量,因此在执行完 for 循环后,输出 a 的值仍然为 0。要得到6,修改如下: 原因就在于变
阅读全文

浙公网安备 33010602011771号