Go语言中匿名函数执行顺序为何不确定?

go语言中匿名函数执行顺序为何不确定?

go语言中的匿名函数执行疑云

在go语言中,匿名函数的执行顺序可能会令人困惑。例如,考虑以下代码:

func main() {    tss := "sdd"    i := 1    func() {        println(tss)        i++    }()    fmt.println("i is", i)}

登录后复制登录后复制

预期执行结果为:

sddhello world, sdd

登录后复制

然而,实际执行结果可能是:

立即学习“go语言免费学习笔记(深入)”;

hello world, sddsdd

登录后复制

为什么会出现这种差异?

这主要是由于两个原因:

流争用: 在go语言中,println 函数向标准错误流输出,而 fmt.println 函数向标准输出流输出。这两个流什么时候刷新并显示在屏幕上是由cpu调度决定的,因此是随机的。函数执行顺序: 匿名函数肯定是在 main 函数中 hello world, sdd 打印之前执行的。但他们的输出仅写入各自的流中,什么时候显示由流争用决定。

为了验证这一点,可以尝试以下代码:

func main() {    tss := "sdd"    i := 1    func() {        println(tss)        i++    }()    fmt.println("i is", i)}

登录后复制登录后复制

无论哪一个流先输出,i 的值始终为 2。这表明匿名函数是在 “i is 2” 输出之前执行的,但流刷新顺序是随机的。

以上就是Go语言中匿名函数执行顺序为何不确定?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2317414.html

(0)
上一篇 2025年2月28日 15:34:48
下一篇 2025年2月21日 08:32:12

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Go 语言中匿名函数执行顺序为何与预期不符?

    匿名函数与输出顺序之谜 在 go 语言中,匿名函数的执行顺序与您预期的可能不一致。让我们通过一个例子来探索这种情况。 代码: package mainimport ( “fmt”)func main() { tss := “sdd” i :…

    2025年2月28日
    200
  • 如何轻松将手机与电脑文件共享:实用技巧与方法

    在现代科技生活中,手机与电脑之间的文件共享变得越来越重要。无论是工作需要,还是日常生活中的资料传输,如何顺利将手机中的文件与电脑进行共享,都是用户们关心的问题。本篇文章将介绍多种文件共享的方式,帮助你轻松实现手机与电脑之间的无缝链接。 一、…

    互联网 2025年2月28日
    200
  • 如何使用电脑的AirDrop功能:轻松共享文件的终极指南

    想要快速轻松地共享文件吗?别错过我们的终极指南!在本指南中,php小编草莓将带领您深入探索airdrop这项神奇的功能,逐步指导您如何通过mac或ios设备无线共享照片、视频、文档和其他文件。立即开始了解,享受无缝文件共享的便捷! 在数字时…

    互联网 2025年2月28日
    200
  • 轻松实现手机图片上传到电脑的终极指南

    在数字化时代,手机已经成为我们生活中不可或缺的一部分。我们通过手机拍摄了许多珍贵的照片,而将这些照片上传到电脑中进行整理与保存便显得尤为重要。本文将详细介绍几种常用的方法,帮助您轻松将手机中的图片上传到电脑,确保您的珍贵回忆不会丢失。 方法…

    互联网 2025年2月28日
    200
  • 如何高效使用电脑版谷歌:优化搜索与配置技巧

    引言 在当今信息时代,google已经成为我们获取信息和资源不可或缺的工具。对于大多数用户而言,谷歌的电脑版界面提供了更多功能和更为便利的使用体验。本文将详细探讨如何高效使用电脑版谷歌,包括优化搜索方式、个性化设置及其它配置技巧。 一、优化…

    互联网 2025年2月28日
    200
  • Go RPC 服务中 .pb.go 文件该如何放置?

    go rpc 服务的目录结构规划 对于 go rpc 应用程序的开发,合理安排目录结构对于管理和维护代码至关重要。 其中一个常见的问题是 .pb.go 文件的放置。此文件是由 grpc 生成,既供服务端又供客户端使用。为优化此文件的位置,可…

    2025年2月28日
    200
  • Composition Over Inheritance in Go

    在设计软件时,“组合优于继承”原则通常会带来更灵活、可维护的代码。 go 以其独特的面向对象设计方法,严重依赖于组合而不是继承。让我们看看为什么。 为什么 go 更喜欢组合 在传统的 oop 语言中,继承允许一个类从另一个类继承行为和属性,…

    2025年2月28日
    200
  • 全球电脑市场的现状与未来趋势

    在这个信息化快速发展的时代,电脑已经成为了人们日常生活和工作中不可或缺的工具。从个人使用到企业管理,电脑的广泛应用推动了社会的进步与发展。然而,全球电脑市场的现状是什么?未来又将如何发展呢?本文将对此进行深入探讨。 全球电脑市场的现状 截至…

    互联网 2025年2月28日
    200
  • 现代浏览器中如何安全地实现验证码功能,避免 Cookie 带来的问题?

    在现代浏览器中进行验证码功能的替代方法 随着 samesite 属性的引入,通过 cookie 实现验证码功能遇到了挑战。为了应对这些困难,以下是一种不需要 cookie 的替代方法: 方法: 发送验证码请求:前端调用发送验证码的接口,该接…

    2025年2月28日
    200
  • 如何解决电脑无法连接手机的问题:全面指南

    许多用户在将手机连接到电脑时遇到了困难。这可能是由于各种因素造成的,例如驱动程序过时、usb 连接问题或手机设置不正确。为了解决这个问题,php小编百草准备了一份全面指南,涵盖了所有可能的解决方案。本文将详细介绍如何检查驱动程序、更換 us…

    互联网 2025年2月28日
    200

发表回复

登录后才能评论