# 2.0 结构体 go不是像c++、java、ruby和c#一样的面向对象语言。它没有对象和继承的概念。因此也没有很多面向对象语言的特性如多态和重载。 go提供了结构体,并且可以将一些方法和结构体关联。go也支持一种简单但是更有效的组合形式。总的来说,这是为了让代码更加简洁,但是在一些场合,你会失去一些面向对象语言提供的特性。(需要特别指出的是,通过组合实现继承是一个很古老的方式了,但是go是我使用过的所有语言中,立场最坚定的。) 尽管你不能像你之前使用的面向对象语言一样使用go,但是你将会注意到,定义一个结构体和定义一个类是很相似的。这里给出了一个简单的例子,定义一个`Saiyan`结构体: ```go type Saiyan struct { Name string Power int } ``` 我们很快会看到怎么往这个结构体添加一个方法,就像类会拥有方法一样。在这之前,我们需要去学习如何声明结构体。 ## 链接 - [目录](directory.md) - 上一章:[继续之前](1.9.md) - 下一节:[声明和初始化](2.1.md)