登录
首页 >  Golang >  Go问答

这段go代码是什么意思?

来源:SegmentFault

时间:2023-01-17 15:56:49 146浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《这段go代码是什么意思?》,聊聊go、多线程,希望可以帮助到正在努力赚钱的你。

问题内容

我在看别人代码的时候:

    for i := 0; i 

我知道

    for i := 0; i 

是遍历 0- 99 次。

但是:里面的这个代码是什么意思?是指的开辟多线程异步执行吗?

        go func(i int) {
            fmt.Println(i)
        }(i)

如果是开多线程,为何不用下面两种方式:

go func() {
            fmt.Println(i)
        }()

go func(i int) {
            fmt.Println(i)
        }()

正确答案

是开协程,不是线程。

这种写法叫闭包函数。你自己分别按这两种写法运行看看就知道差别了。

可能形参实参都叫 i 所以你迷糊了,换个名字看可能更清晰:

for outer := 0; outer 

JS 中也有类似的问题,也是面试题中常见的问题之一:

for (var i = 0; i 

本质就是为了防止变量作用域污染。

理论要掌握,实操不能落!以上关于《这段go代码是什么意思?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>