package main import "fmt" type ZeroDivisor struct { // 定义一个0当做除数的结构体 divisor int // 被除数 divider int // 除数 } func (zd *ZeroDivisor) Error() string { // 实现Error接口 strFormat := ` the divider is zero divisor: %d divider: 0 ` return fmt.Sprintf(strFo…
package main import "fmt" // 项目开发中可以为type声明的类型编写一些方法,从而实现对象.方法的操作 // 声明类型 type myInt int // int有的功能myInt都有 // 为MyInt类型自定义一个指针方法 // 此处可以使指针,可以是类型 *myInt myInt // 如果是类型会拷贝一份,如果是指针不拷贝 func (i *myInt) doSomething(a, b int) int { return a + b + int(*…
Raygun服务由许多活动组件构成,每个组件用于特定的任务.其中一个模块是用Golang编写的,负责对iOS崩溃报告进行处理.简而言之,它接受本机iOS崩溃报告,查找相关的dSYM文件,并生成开发者可以阅读并理解的堆栈跟踪信息. dSYM-worker进程的操作非常简单,它通过Redis队列接收作业并执行,然后不断重复.这个dSYN-worker进程在一台机器上运行,作业处理的速率及负载相对合理,但仍有一些情况需要运维人员随时待命维护: 负载飙升.每隔一段时间,通常是在周末,用户更多地使用iOS…
本文将通过一个实例讲解怎么实现在4.0及以上系统版本中实现自定义TitleBar,这只是我自己找到的一种方法; xml布局文件 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m…
golang 的 nil 在概念上和其它语言的 null.None.nil.NULL一样,都指代零值或空值.nil 是预先说明的标识符,也即通常意义上的关键字.在 golang 中,nil 只能赋值给 指针.channel.func.interface.map 或 slice 类型的变量.如果未遵循这个规则,则会引发 panic.对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#Type golang 中的 interface 类似于 java 的 in…
taowen是json-iterator的作者. 序列化和反序列化需要处理JSON和struct的关系,其中会用到一些技巧. 原文 Golang 中使用 JSON 的小技巧是他的经验之谈,介绍了一些struct解析成json的技巧,以及 json-iterator 库的一些便利的处理. 有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用. 本来用一个json:",string" 就可以支持了,如果不知道golang的这些小技巧,就要大费周章了. 参考文章:htt…
结构体: 1.用来自定义复杂数据结构 2.struct里面可以包含多个字段(属性) 3.struct类型可以定义方法,注意和函数的区分 4.strucr类型是值类型 5.struct类型可以嵌套 6.go语言中没有class类型,只有struct类型 struct声明: type  标识符 struct{ field1 type field2 type } 例子: type Student struct{ Name string Age  int Score int } struct中字段访问,…
阅读约 11 分钟 注:该文作者是 Katrina Owen,原文地址是 iota: Elegant Constants in Golang 有些概念有名字,并且有时候我们关注这些名字,甚至(特别)是在我们代码中. const ( CCVisa = "Visa" CCMasterCard = "MasterCard" CCAmericanExpress = "American Express" ) 在其他时候,我们仅仅关注能把一个东西与其他的做区…
Golang中如何正确的使用sarama包操作Kafka? 一.背景 在一些业务系统中,模块之间通过引入Kafka解藕,拿IM举例(图来源): 用户A给B发送消息,msg_gateway收到消息后,投递消息到Kafka后就给A返回发送成功.这个时候,其实还没有持久化到mysql中,虽然最终会保持一致性.所以,试想如果Kafka丢消息了,是不是就出大问题了?A认为给B发送消息成功了,但是在服务器内部消息丢失了B并没有收到.   所以,在使用Kafka的时候,有一些业务对消息丢失问题非常的关注.  …
RPC简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用 golang中如何实现RPC golang中实现RPC非常简单,官方提供了封装好的库,还有一些第三方的库 golang官方的net/rpc库使用encoding/gob进行编解码,支持tcp和http数据传输方式,由于其他语…