go学习笔记(1) — 类型系统

最近开始学go ,所以写一下记笔记。

类型系统

Go语言提供了灵活的、无继承的类型系统,在无需降低运行性能的情况下最大程度的复用代码。

这个类型系统依然支持面向对象开发,但避免了传统面向对象的问题。go使用组合(composition)设计模式

只需简单的将一个类型嵌入到另一个类型,就能服用所有功能,在go语言中,一个类型有其他更微小的类型组合而成,避免了传统基于继承的模型。

另外,go语言有独特的接口实现机制,允许用户对行为进行建模,而不是对类型进行建模。在go语言中不需要声明某个类型实现了某个接口,编译器会判断一个类型的实例是否符合正在使用的接口。

  • 类型简单

go语言不仅有类似int、string这样的内置类型,还支持用户自定义类型。go语言的用户定义的类型看起来和c语言的结构很像,用起来也很相似。与传统语言通过继承来扩展结构不同,go时使用不同的小类型组成一个大类型。

  • go接口对一组行为建模

接口用于描述类型的行为,如果一个类型的水实现了一个接口,意味着这个实例可以执行一组特定的行为。