This commit is contained in:
Xargin 2016-04-27 16:02:46 +08:00
parent ad7403da0a
commit 1fcee01ed2

View File

@ -121,9 +121,9 @@ func add(t *tree, value int) *tree {
} }
``` ```
结构体类型的零值是每个成员都是零值。通常会将零值作为最合理的默认值。例如对于bytes.Buffer类型结构体初始值就是一个随时可用的空缓存还有在第9章将会讲到的sync.Mutex的零值也是有效的未锁定状态。有时候这种零值可用的特性是自然获得的但是也有些类型需要一些额外的工作。 结构体类型的零值是每个成员都是零值。通常会将零值作为最合理的默认值。例如对于bytes.Buffer类型结构体初始值就是一个随时可用的空缓存还有在第9章将会讲到的sync.Mutex的零值也是有效的未锁定状态。有时候这种零值可用的特性是自然获得的但是也有些类型需要一些额外的工作。
如果结构体没有任何成员的话就是空结构体写作struct{}。它的大小为0也不包含任何信息但是有时候依然是有价值的。有些Go语言程序员用map带模拟set数据结构时用它来代替map中布尔类型的value只是强调key的重要性但是因为节约的空间有限而且语法比较复杂所有我们通常避免避免这样的用法。 如果结构体没有任何成员的话就是空结构体写作struct{}。它的大小为0也不包含任何信息但是有时候依然是有价值的。有些Go语言程序员用map带模拟set数据结构时用它来代替map中布尔类型的value只是强调key的重要性但是因为节约的空间有限而且语法比较复杂所有我们通常避免这样的用法。
```Go ```Go
seen := make(map[string]struct{}) // set of strings seen := make(map[string]struct{}) // set of strings