mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 05:33:04 +08:00
@@ -170,7 +170,7 @@ for i, d := range dataSlice {
|
|||||||
|
|
||||||
## 11.9.4 通用类型的节点数据结构
|
## 11.9.4 通用类型的节点数据结构
|
||||||
|
|
||||||
在10.1中我们遇到了诸如列表和树这样的数据结构,在它们的定义中使用了一种叫节点的递归结构体类型,节点包含一个某种类型的数据字段。现在可以使用空接口作为数据字段的类型,这样我们就能写出通用的代码。下面是实现一个二叉树的部分代码:通用定义、用于创建空节点的 `NewNode` 方法,及设置数据的 `SetData` 方法.
|
在10.1中我们遇到了诸如列表和树这样的数据结构,在它们的定义中使用了一种叫节点的递归结构体类型,节点包含一个某种类型的数据字段。现在可以使用空接口作为数据字段的类型,这样我们就能写出通用的代码。下面是实现一个二叉树的部分代码:通用定义、用于创建空节点的 `NewNode` 方法,及设置数据的 `SetData` 方法。
|
||||||
|
|
||||||
示例 11.10 [node_structures.go](examples/chapter_11/node_structures.go):
|
示例 11.10 [node_structures.go](examples/chapter_11/node_structures.go):
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ func main() {
|
|||||||
|
|
||||||
## 11.9.5 接口到接口
|
## 11.9.5 接口到接口
|
||||||
|
|
||||||
一个接口的值可以赋值给另一个接口变量,只要底层类型实现了必要的方法。这个转换是在运行时进行检查的,转换失败会导致一个运行时错误:这是 'Go' 语言动态的一面,可以拿它和 `Ruby` 和 `Python` 这些动态语言相比较。
|
一个接口的值可以赋值给另一个接口变量,只要底层类型实现了必要的方法。这个转换是在运行时进行检查的,转换失败会导致一个运行时错误:这是 `Go` 语言动态的一面,可以拿它和 `Ruby` 和 `Python` 这些动态语言相比较。
|
||||||
|
|
||||||
假定:
|
假定:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user