mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:43:26 +08:00
翻译11.12部分内容
This commit is contained in:
@@ -14,7 +14,7 @@ type Any interface {}
|
||||
|
||||
可以给一个空接口类型的变量 `var val interface {}` 赋任何类型的值。
|
||||
|
||||
示例 11.8 empty_interface.go:
|
||||
示例 11.8 [empty_interface.go](examples/chapter_11/empty_interface.go):
|
||||
|
||||
```go
|
||||
package main
|
||||
@@ -65,7 +65,7 @@ func main() {
|
||||
|
||||
在上面的例子中,接口变量 `val` 被依次赋予一个 `int`,`string` 和 `Person` 实例的值,然后使用 `type-swtich` 来测试它的实际类型。每个 `interface {}` 变量在内存中占据两个字长:一个用来存储它包含的类型,另一个用来存储它包含的数据或者指向数据的指针。
|
||||
|
||||
例子 emptyint_switch.go 说明了空接口在 `type-swtich` 中联合 `lambda` 函数的用法:
|
||||
示例 [emptyint_switch.go](examples/chapter_11/emptyint_switch.go) 说明了空接口在 `type-swtich` 中联合 `lambda` 函数的用法:
|
||||
|
||||
```go
|
||||
package main
|
||||
@@ -172,7 +172,7 @@ for ix, d := range dataSlice {
|
||||
|
||||
在10.1中我们遇到了诸如列表和树这样的数据结构,在它们的定义中使用了一种叫节点的递归结构体类型,节点包含一个某种类型的数据字段。现在可以使用空接口作为数据字段的类型,这样我们就能写出通用的代码。下面是实现一个二叉树的部分代码:通用定义、用于创建空节点的 `NewNode` 方法,及设置数据的 `SetData` 方法.
|
||||
|
||||
示例 11.10 node_structures.go:
|
||||
示例 11.10 [node_structures.go](examples/chapter_11/node_structures.go):
|
||||
|
||||
```go
|
||||
package main
|
||||
|
Reference in New Issue
Block a user