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

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

匿名函数与输出顺序之谜

在 go 语言中,匿名函数的执行顺序与您预期的可能不一致。让我们通过一个例子来探索这种情况。

代码:

package mainimport (    "fmt")func main() {    tss := "sdd"    i := 1    func() {        fmt.println(tss)        i++    }()    fmt.println("hello world, sdd")}

登录后复制

预期执行顺序:

匿名函数输出 “sdd”主函数输出 “hello world, sdd”

实际执行顺序:

有时为:

“hello world, sdd””sdd”

其他时候为:

“sdd””hello world, sdd”

原因:

这种执行顺序差异的原因在于 fmt.println 函数和匿名函数都会向不同的流中输出数据。fmt.println 输出到标准输出流,而匿名函数输出到标准错误流。这两个流什么时候向屏幕显示取决于操作系统调度。

尽管匿名函数先执行,但它们写入标准错误流,而 fmt.println 写入标准输出流。因此,输出顺序取决于两个流何时被调度打印到屏幕。

您可以在代码中添加如下内容来确认匿名函数确实在 fmt.println 之前执行:

func main() {    tss := "sdd"    i := 1    func() {        fmt.Println(tss)        i++        fmt.Println("i is", i) // 添加此行    }()    fmt.Println("hello world, sdd")}

登录后复制

无论 fmt.println 或匿名函数先输出什么,您都会看到 i is 2,表明匿名函数已先于 fmt.println 执行。

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

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

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

(0)
上一篇 2025年2月28日 15:34:24
下一篇 2025年2月23日 16:40:36

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

相关推荐

  • 如何轻松将手机与电脑文件共享:实用技巧与方法

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

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

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

    互联网 2025年2月28日
    200
  • 如何解决 SysProcAttr 结构体在不同操作系统平台的兼容性问题?

    sysprocattr 兼容性问题 在 syscall.sysprocattr 结构体的使用中,不同的操作系统平台可能会遇到兼容性问题。在 linux 系统下,setsid: true 字段是有效的,而在 windows 系统下却无法编译。…

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

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

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

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

    互联网 2025年2月28日
    200
  • 电脑反应慢的原因与解决方案:全面解析与优化建议

    电脑运行速度慢是许多用户都会遇到的难题,严重影响工作效率和使用体验。本文将深入分析电脑速度慢的常见原因,并提供相应的解决方案,助您恢复电脑流畅运行。 一、电脑速度慢的常见原因 电脑运行缓慢通常由以下几个因素造成: 系统资源超负荷:同时运行过…

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

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

    2025年2月28日
    200
  • 如何轻松设置和使用电脑睡眠快捷键

    在现代生活中,电脑已经成为我们工作和生活中不可或缺的工具。随着长时间使用电脑,许多用户会发现电脑的性能逐渐减缓。在这种情况下,合理使用睡眠模式可以显著提高电脑的工作效率,并且节省能耗。本文将为您详细介绍电脑睡眠快捷键的设置和使用方法,让您轻…

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

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

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

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

    互联网 2025年2月28日
    200

发表回复

登录后才能评论