1.接口简介 Interface 是一组抽象方法(未具体实现的方法,仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类型就实现了该接口。 注意: (1)接口中不能含有属性; (2)…
标签:go
golang 版本的 ring buffer (变长,持久化)
最终的实现代码: https://github.com/esdb/drbuffer本文是整个 kafka agent 实现过程中的第一步:https://segmentfault.com/a/11900000045677…
Go 利用chan嵌套chan 实现函数异步执行 顺序返回值
遇到的问题 异步对于绝大多数的开发而言并不陌生,在go语言中异步的实现变得异常方便。只要在执行的方法前加一个go关键字就可以实现异步操作。但是如果需求是,按照调用的先后顺序(FIFO)来返回值我们应该怎么办。大家都知道,…
Golang 语法吐漕
func (e JsonEncoder) Encode(obj interface{}) ([]byte, error) { } 从这样一个函数声明来看吧: 类型放变量名后面 跟所有其他语言相反。不知道哪根筋搭错了,非得…
golang什么时候应该把方法绑定在struct的值上而不是指针上?
golang 支持 struct 也支持 struct 的指针。一个常见的困惑是既然struct 指针存在了,为什么不干脆只有struct的指针呢?两个原因: struct不可空,而struct指针可以为nil []my…
Go语言的类型系统 - 翻译
概览 本文涉及到下面的几个方面: 声明新的用户自定义类型 为类型添加行为 何时用值类型何时用指针类型 使用接口实现多态 通过组合扩展和改变类型 标识符的暴露与不暴露 Go语言是一种静态类型的编程语言。编译器总是需要知道程…
go语言学习初探(一)
go语言安装省略 首先创建一个hello.go 文件 package main import ( "fmt" ) func main() { fmt.Println('hello world!') } package…
GoLand中的指针操作 * 和 &
&和*这可能是Go中最令人困惑的事情之一。基本上你需要了解3个案例: &操作符 var str string ="123" //打印str变量的内存地址 ftm.Println(&str) 获取变…
Go单例模式
单例模式回顾 以前在做java的时候,经常会用到设计模式,如单例模式、工厂模式、观察者模式等。其实设计模式和语言无关,先简单回顾下单例模式吧,单例模式是一种用在特定场景的设计模式。比如,读取程序的配置文件的时候就会用到单…
golang类和结构体
golang结构体和类 golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class。 类声明 type Poem struct { Title string Author st…
Go语言的错误处理
序言 错误处理在每个语言中都是一项重要内容。众所周知,通常写程序时遇到的分为异常与错误两种,Golang中也不例外。Golang遵循『少即是多』的设计哲学,错误处理也力求简洁明了,在错误处理上采用了类似c语言的错误处理方…
golang源码安装时fatal error: MSpanList_Insert错误
原本使用的golang是1.9版本,今天想升到最新的1.11。遇到如下错误 failed MSpanList_Insert 0x905000 0x9b51f3c97b8 0x0 0x0 fatal error: MSpa…