go 笔记整理

原创 2017年07月27日 14:55:09


关于interface与string和error:

fmt.Println是我们常用的一个函数,打开fmt的源码文件,会看到这样一个定义:

type Stringer interface {
   String() string
}

也就是说,任何实现了String方法的类型都能作为参数被fmt.Println调用

type programmer struct {
   Human //匿名字段
   Company string
   Money float32
}

func (programmer)String()(string){
   return "i'm a dog" 
}

func main(){

   hans := a1.Programmer{a1.Human{"hans",25,"155-xxxx-xxxx"},"ch999",500}

   fmt.Println(hans)


}

实现了string接口之后打印会打印出:


如果不实现string接口的话,直接打印会打印出:

type Programmer struct {
   Human //匿名字段
   Company string
   Money float32
}

//func (Programmer)String()(string){
// return "i'm a dog"
//}


没了

补充:实现了error接口的对象(即实现了Error() string的对象),使用fmt输出时,会调用Error()方法,因此不必再定义String()方法了。


相关文章推荐

Go语言学习笔记

  • 2014年04月10日 20:46
  • 1011KB
  • 下载

Go 学习笔记 第四版

  • 2016年11月29日 16:01
  • 1.22MB
  • 下载

Go Programming Blueprints 读书笔记(谈到了nsq/mgo处理数据持久化,但是业务逻辑不够复杂)

Go Programming Blueprints http.Handle("/", &templateHandler{filename: "chat.html"}); ...
  • cteng
  • cteng
  • 2015年07月26日 11:57
  • 1636

Go学习笔记

  • 2015年02月03日 13:41
  • 1.16MB
  • 下载

go语言学习笔记

  • 2013年05月07日 14:45
  • 1.58MB
  • 下载

go基本语法学习笔记之面向对象

类型系统 GO中大多数类型都是值语义的,并且都可以包含对应的操作方法,而且可以在需要时给类型添加新方法。 在实现某个接口时,无需从该接口继承(事实上GO根本就不支持面向对象中的集成语法),只需实现...
  • wolgame
  • wolgame
  • 2016年01月15日 14:34
  • 574

go笔记第三版

  • 2014年08月18日 13:25
  • 1.05MB
  • 下载

Go 学习笔记 第二版

  • 2014年05月27日 13:37
  • 1.21MB
  • 下载

Go语言笔记:base64/sha1的使用

1.base64编码 package main //这个语法引入了 encoding/base64 包并使用名称 b64代替默认的 base64。这样可以节省点空间。 import b64 "...

Go 学习笔记

  • 2013年01月15日 22:07
  • 1.38MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:go 笔记整理
举报原因:
原因补充:

(最多只允许输入30个字)