当前位置: 首页 > news >正文

厚街东莞网站建设网站开发者调试模式

厚街东莞网站建设,网站开发者调试模式,大学网页制作与网站建设,网页设计试题及答案目录 每次迭代都创建新变量 支持整数类型循环 小结 在 Go 语言中#xff0c;for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活#xff0c;有多种使用方式#xff0c;包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。 在 1…目录 每次迭代都创建新变量 支持整数类型循环 小结 在 Go 语言中for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活有多种使用方式包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。 在 1.22 之前的版本中for 循环的变量只创建一次在每个迭代中为这个变量赋予对应的值。由于这个特性使用起来很容易犯错一不小心就会导致意想不到的行为。看如下示例 package mainimport (fmttime )func main() {s : []string{a, b}for _, v : range s {go func() {fmt.Print(v)}()}time.Sleep(time.Second * 1) } 这个示例结果一般都会输出 bb而并非预期中的 ab 或 ba。for 循环遍历 s 切片每次迭代中都启动一个新的 goroutine 来打印变量 v 的值。由于 goroutine 是并发执行的并且 for 循环不会等待它们完成。由于 for 循环的迭代速度非常快当 goroutine 启动时都共享了循环变量 v 的同一个实例而不是在每次迭代时捕获 v 的值。当这些 goroutine 最终执行时循环变量 v 的值大多数情况下已经变成了循环的最后一个值 b。但是由于并发的性质实际的输出可能会有所不同。 当然可以通过其他写法来避免这个问题每次可以额外使用一个新的变量来承接示例代码如下 package mainimport (fmttime )func main() {s : []string{a, b}for _, v : range s {newV : vgo func() {fmt.Print(newV)}()}time.Sleep(time.Second * 1) } 也可以使用通过给闭包函数传参的方式示例代码如下 package mainimport (fmttime )func main() {s : []string{a, b}for _, v : range s {go func(v string) {fmt.Print(v)}(v)}time.Sleep(time.Second * 1) } 这两种方式都略显繁琐。有了这个知识背景接下来看下 Go 1.22 中 for 循环的第一个变化。 每次迭代都创建新变量 在 Go 1.22 中for 循环的每次迭代都会创建新变量这将会避免上文示例中的问题。还是按照第一个代码示例执行一次代码如下 package mainimport (fmttime )func main() {s : []string{a, b}for _, v : range s {go func() {fmt.Print(v)}()}time.Sleep(time.Second * 1) } 可以发现这段代码不再输出 bb 而是输出了预期中的 ab 或者 ba。因为每次迭代都会创建新变量 v所以每个闭包都持有对不同 v 变量的引用因此输出了预期的结果。循环的每次迭代都会创建新变量的这一更新提高了代码的安全性和可预测性。接下来看下 Go 1.22 中 for 循环的第二个变化。 支持整数类型循环 在 Go 1.22 之前for range 循环支持 array、slice、string、map 和 channel 类型的表达式。从 1.22 开始新增了对整数类型表达式的支持。这意味着可以直接使用整数进行循环例如如下代码示例将迭代从 0 到 2 的整数。 package mainimport fmtfunc main() {for i : range 3 {fmt.Println(i)} } 这种写法在 1.22 之前的版本会报错。 小结 这两项更新显著提高了 Go 语言在编写循环时的灵活性和安全性有助于避免一些常见的编程错误和陷阱。
http://www.w-s-a.com/news/47404/

相关文章:

  • 网站推广营销联系方式wordpress adminlte
  • 哪些网站可以做文字链广告卖水果网站建设的策划书
  • 雕刻业务网站怎么做企业qq官网
  • 新华书店的做的数字阅读网站wordpress编辑器格式
  • jq做6个网站做什么好广西临桂建设局网站
  • 网站新闻图片尺寸南京网站设计公司
  • 重庆seo建站网站服务器 安全
  • 咸宁做网站的公司桂林网站建设兼职
  • 教做网站网站开发行业分析
  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站
  • 免费域名申请个人网站阿里巴巴运营的工作内容
  • 怎么建自己的手机网站保定电子商务网站建设
  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程
  • 在线制作网站的工具岳阳网站设计改版
  • 网站建设需要汇报哪些内容前端开发的工作内容
  • 无锡阿凡达网站建设美团app开发公司
  • 个性化企业网站制作公司深圳高端网站定制公
  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台