2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。

package main

import (

"fmt"

"sync"

)

func main() {

wg := sync.WaitGroup{}

wg.Add(1)

go hello(wg)

wg.Wait()

}

func hello(wg sync.WaitGroup) {

fmt.Println("hello")

wg.Done()

}

答案2022-08-09:

答案选A,因为 hello 的参数是 sync.WaitGroup,这会导致 main 中 wg 被复制一份,起不到该有的作用,应该改为 *sync.WaitGroup。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。
大家都在看: