From 872b5f4fe44579fa56cd6011f858a73df3e0f270 Mon Sep 17 00:00:00 2001 From: leisore Date: Wed, 12 Aug 2015 11:55:31 +0800 Subject: [PATCH] format --- eBook/10.6.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/eBook/10.6.md b/eBook/10.6.md index dd03c00..30b432c 100644 --- a/eBook/10.6.md +++ b/eBook/10.6.md @@ -285,7 +285,7 @@ func main() { } ``` -** 10.6.4 方法和未导出字段 +## 10.6.4 方法和未导出字段 考虑person2.go中的person包:类型Person被明确的导出了,但是它的字段没有被导出。例如在use_person2.go中p.firsetname就是错误的。该如何在另一个程序中修改或者只是读取一个Person的名字呢? @@ -408,7 +408,7 @@ func (n *NamedPoint) Abs() float64 { 结构体内嵌和自己在同一个包中的结构体时,可以彼此访问对方所有的字段和方法。 -**练习 10.8**:inheritance_car.go +练习 10.8:inheritance_car.go 创建一个上面Car和Engine可运行的例子,并且给Car类型一个wheelCount字段和一个numberOfWheels()方法。 @@ -571,17 +571,17 @@ func main() { It exhibits behavior of a Camera: Click It works like a Phone too: Ring Ring -* 练习 10.9:* point_methods.go: +练习 10.9:point_methods.go: 从point.go开始(10.1的联系):使用方法来实现Abs()和Scale()函数,Point作为方法的接收者类型。也为Point3和Polar实现Abs()方法。做point.go中同样的事情,只是这次通过方法。 -* 练习 10.10:* inherit_methods.go: +练习 10.10:inherit_methods.go: 定义一个结构体类型Base,它包含一个字段id,方法Id()返回id,方法SetId()修改id。结构体类型Person包含Base,及FirstName和LastName字段。结构体类型Employee包含一个Person和salary字段。 创建一个employee实例,然后显示它的id。 -* 练习 10.11:* magic.go: +练习 10.11:magic.go: 首先预测一下下面程序的结果,然后动手实验下: @@ -657,10 +657,11 @@ func (i *Integer) String() string { 如果真的需要更多OO的能力,看一下goop包(Go Object-Oriented Programming),它来自与Scott Pakin[(https://github.com/losalamos/goop]: 它给Go提供了JavaScript风格的对象(基于原型的对象),并且支持多重继承和类型独立分派,通过它可以实现你喜欢的其他编程语言里的一些结构。 -** 问题 10.1:** +问题 10.1: + 我们在某个类型的变量上使用点号调用一个方法:variable.method(),在使用Go以前,在哪儿碰到过OO的点号? -** 问题 10.2:** +问题 10.2: a) 假设定义: `type Integer int`,完成get()方法的方法体: `func (p Integer) get() int { ... }`