Go 中的 interface 是一种抽象类型。一个 interface 就是包含了一系列行为的method集合。 关于 interface 的定义,以 Writer 为例: package io type Writer…
分类:go教程
golang 中 cannot use ** (type interface {}) as type **解决方案
在beego中从session中取值的时候,取出来的是intergace{},但是我先返回的值是int型,或者是string,这个时候会出现一个错误:cannot use ** (变量)(type interface {…
Go 语言net/http 包使用模式
译注: 这篇文章的内容非常基础,也非常容易理解。原文地址,感觉是最能清晰的讲述了net/http包的用法的一篇,故翻译一下共享之。 一切的基础:ServeMux 和 Handler Go 语言中处理 HTTP 请求主要跟…
TiKV 源码解析系列 ——Placement Driver
本系列文章主要面向 TiKV 社区开发者,重点介绍 TiKV 的系统架构,源码结构,流程解析。目的是使得开发者阅读之后,能对 TiKV 项目有一个初步了解,更好的参与进入 TiKV 的开发中。 TiKV 是一个分布式的 …
fasthttp中的协程池实现
fasthttp中的协程池实现 协程池可以控制并行度,复用协程。fasthttp 比 net/http 效率高很多倍的重要原因,就是利用了协程池。实现并不复杂,我们可以参考他的设计,写出高性能的应用。 入口 // ser…
Go 1.9 新特性
Go1.9于2017年8月24日正式发布,新版本的Go有一些新变化:标准库,运行时,以及新的工具。在这个版本中,Go团队主要的工作都是在运行时的改进以及一些工具链的开发中。这些变化虽然不够令人激动,但是这的确是一个很棒的…
golang中数组和slice作为参数的区别
最近项目中有遇到类似问题,做个记录。 举个例子,[5]int为数组,[]int为slice(数组切片),数组是值类型,而slice为引用类型,值类型作为参数传入函数,只是拷贝了个副本,修改并不会作用到传入的那个参数,所以…
Go 的 fake-useragent 了解一下
Go 的 fake-useragent 了解一下 有的网站会根据 User-Agent 的不同,跳转到不同(PC、M)的站点,也有根据版本的不同给出不一样的提示等等,而 User-Agent 的变化更是爬虫里的基础姿势 …
Go 开发环境配置
Golang是Google开发的一种编译型,平行化编程语言。具有简洁、快速、安全。善于内存管理、数组安全,并且编译迅速Go语言设计支持主流的32位和64位的x86平台,同时也支持32位的ARM架构。Go语言在Go1版本上…
go run main.go undefined? golang main包那点事
最近把我的ss项目做了一下结构调整,一顿重构后,输入go run main.go,编译报错function undefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。之前也遇到过这个问题不过没用深究,…
Go Module 工程化实践(二):取包原理篇
那一天我二十一歲,在我一生的黃金時代,我有好多奢望。我想愛,想吃,還想在一瞬間變成天上半明半暗的雲,後來我才知道,生活就是個緩慢受錘的過程,人一天天老下去,奢望也一天天消逝,最後變得像挨了錘的牛一樣。可是我過二十一歲生日…
go module使用本地包
go module的使用非常简单 初始化go.mod go mod init 整理依赖包 go mod tidy 如果想缓存到vendor目录 go mod vendor 执行命令之后都会自动把依赖搞定. 但是, 如果我…