modified: eBook/10.1.md

This commit is contained in:
songleo
2016-03-14 17:27:24 +08:00
parent 0cb1471cc7
commit 5b2d1a73c7

View File

@@ -35,7 +35,7 @@ t = new(T)
写这条语句的惯用方法是:`t := new(T)`,变量 `t` 是一个指向 `T`的指针,此时结构体字段的值是它们所属类型的零值。
声明 `var t T` 也会给 `t` 分配内存,并零值化内存,但是这个时候 `t` 是类型T。在这两种方式中`t` 通常被称做类型 T 的一个实例instance或对象Object
声明 `var t T` 也会给 `t` 分配内存,并零值化内存,但是这个时候 `t` 是类型T。在这两种方式中`t` 通常被称做类型 T 的一个实例instance或对象object
示例 10.1 [structs_fields.go](examples/chapter_10/structs_fields.go) 给出了一个非常简单的例子:
@@ -85,7 +85,7 @@ v.i
p.i
```
初始化一个结构体实例(一个结构体字面量struct-literal)的更简短和惯用的方式如下:
初始化一个结构体实例一个结构体字面量struct-literal的更简短和惯用的方式如下:
```go
ms := &struct1{10, 15.5, "Chris"}
@@ -120,7 +120,7 @@ intr := Interval{end:5} (C)
A值必须以字段在结构体定义时的顺序给出**&** 不是必须的。B显示了另一种方式字段名加一个冒号放在值的前面这种情况下值的顺序不必一致并且某些字段还可以被忽略掉就像C中那样。
结构体类型和字段的命名遵循可见性规则(第 [4.2](04.2.md) 节),一个导出的结构体类型中有些字段是导出的,另一些不是,这是可能的。
结构体类型和字段的命名遵循可见性规则(第 [4.2](04.2.md) 节)一个导出的结构体类型中有些字段是导出的,另一些不是,这是可能的。
下图说明了结构体类型实例和一个指向它的指针的内存布局:
@@ -138,7 +138,7 @@ type Point struct { x, y int }
类型 strcut1 在定义它的包 pack1 中必须是唯一的,它的完全类型名是:`pack1.struct1`
下面的例子 [Listing 10.2—person.go](examples/person.go) 显示了一个结构体 Person一个方法方法有一个类型为 `*Person` 的参数(因此对象本身是可以被改变的),以及三种调用这个方法的不同方式:
下面的例子 [Listing 10.2—person.go](examples/chapter_10/struct_pack/person.go) 显示了一个结构体 Person一个方法方法有一个类型为 `*Person` 的参数(因此对象本身是可以被改变的),以及三种调用这个方法的不同方式:
```go
package main