关于Golang struct{}{}用法和注意事项
引自ljq@GitHub
- struct {}
struct {}是一个无元素的结构体类型,通常在没有信息存储时使用。
优点:不需要内存来存储struct{}类型的值。 - struct{}{}
struct{}{}是一个复合字面量,它构造了一个struct{}类型的值,该值也是空。 - 两个structt{}{}地址相等
package mainimport "fmt"type idBval struct {
Id int
}func main() {
idA := struct{}{}
fmt.Printf("idA: %T and %v \n\n", idA, idA)idB := idBval{
1,
}
idB.Id = 2
fmt.Printf("idB: %T and %v \n\n", idB, idB)idC := struct {
Id int
}{
1,
}
fmt.Printf("idC: %T and %v \n\n", idC, idC)mapD := make(map[string]struct{})
mapD["mapD"] = struct{}{}
_, ok := mapD["mapD"]
fmt.Printf("mapD['mapD'] is %v \n\n", ok)sliceE := make([]interface{}, 2)
sliceE[0] = 1
sliceE[1] = struct{}{}
fmt.Printf("idE: %T and %v \n\n", sliceE, sliceE)}
Output:
idA: struct {} and {} idB: main.idBval and {2} idC: struct { Id int } and {1} mapD['mapD'] is true idE: []interface {} and [1 {}]
【关于Golang struct{}{}用法和注意事项】引自ljq@GitHub
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考
- 关于this的一些问题(1)
- 《声之形》
- 关于如何沟通的1/2/3