为什么var sw sync.WaitGroup 可以直接使用,而不用new

来源:11-2 使用Channel等待任务结束

weibo_北桥_03164202

2020-05-02

为什么var sw sync.WaitGroup 可以直接使用,而不用new

写回答

1回答

ccmouse

2020-05-05

go语言中有不少类型都可以直接使用而不用new。

WaitGroup本身是一个结构体,当我们说var sw sync.WaitGroup的时候,系统必须为sw分配内存,存放数据。只是存放的数据都是“零”值。也就是里面的整数字段是0,字符串字段是""等。WaitGroup的成员函数只要能正确处理“零”值即可。

这区别于指针,如果我们说var sw *sync.WaitGroup,那这个sw就指向了空(nil)。就有可能不能直接使用了。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程