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

同一人可以做几个网站的负责人广州公关公司

同一人可以做几个网站的负责人,广州公关公司,北京网站建设公司动感,达州做网站的公司目录 每次迭代都创建新变量 支持整数类型循环 小结 在 Go 语言中,for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活,有多种使用方式,包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。 在 1…

目录

每次迭代都创建新变量

支持整数类型循环

小结


在 Go 语言中,for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活,有多种使用方式,包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。

在 1.22 之前的版本中,for 循环的变量只创建一次,在每个迭代中为这个变量赋予对应的值。由于这个特性,使用起来很容易犯错,一不小心就会导致意想不到的行为。看如下示例:

package mainimport ("fmt""time"
)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 ("fmt""time"
)func main() {s := []string{"a", "b"}for _, v := range s {newV := vgo func() {fmt.Print(newV)}()}time.Sleep(time.Second * 1)
}

也可以使用通过给闭包函数传参的方式,示例代码如下:

package mainimport ("fmt""time"
)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 ("fmt""time"
)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 "fmt"func main() {for i := range 3 {fmt.Println(i)}
}

这种写法在 1.22 之前的版本会报错。

小结

这两项更新显著提高了 Go 语言在编写循环时的灵活性和安全性,有助于避免一些常见的编程错误和陷阱。


文章转载自:
http://xerophyte.pwrb.cn
http://portable.pwrb.cn
http://untuneful.pwrb.cn
http://knitting.pwrb.cn
http://toxoplasmosis.pwrb.cn
http://drugger.pwrb.cn
http://xviii.pwrb.cn
http://pomiferous.pwrb.cn
http://whiggery.pwrb.cn
http://prosperously.pwrb.cn
http://spaceless.pwrb.cn
http://nemoral.pwrb.cn
http://installation.pwrb.cn
http://hevea.pwrb.cn
http://indebted.pwrb.cn
http://lathee.pwrb.cn
http://potent.pwrb.cn
http://unedible.pwrb.cn
http://horopteric.pwrb.cn
http://cryptococcus.pwrb.cn
http://mediator.pwrb.cn
http://unscriptural.pwrb.cn
http://cystoscope.pwrb.cn
http://floorboard.pwrb.cn
http://myosis.pwrb.cn
http://planetokhod.pwrb.cn
http://frit.pwrb.cn
http://bushhammer.pwrb.cn
http://igg.pwrb.cn
http://promiscuously.pwrb.cn
http://postface.pwrb.cn
http://uraeus.pwrb.cn
http://wesley.pwrb.cn
http://cynocephalous.pwrb.cn
http://yorkshirewoman.pwrb.cn
http://throttleable.pwrb.cn
http://livestock.pwrb.cn
http://strelitzia.pwrb.cn
http://yeomanry.pwrb.cn
http://shareholder.pwrb.cn
http://agrologist.pwrb.cn
http://ymir.pwrb.cn
http://quahaug.pwrb.cn
http://extremity.pwrb.cn
http://cardplaying.pwrb.cn
http://semifictional.pwrb.cn
http://bulbil.pwrb.cn
http://stadia.pwrb.cn
http://nitriding.pwrb.cn
http://decalitre.pwrb.cn
http://erotogenic.pwrb.cn
http://goluptious.pwrb.cn
http://epanaphora.pwrb.cn
http://jut.pwrb.cn
http://pyopneumothorax.pwrb.cn
http://assign.pwrb.cn
http://tabasheer.pwrb.cn
http://monumentally.pwrb.cn
http://turboshaft.pwrb.cn
http://sexy.pwrb.cn
http://epeirogentic.pwrb.cn
http://nonrigid.pwrb.cn
http://pimple.pwrb.cn
http://anticonvulsive.pwrb.cn
http://foetus.pwrb.cn
http://polytropic.pwrb.cn
http://cocarboxylase.pwrb.cn
http://pastorless.pwrb.cn
http://phthisiology.pwrb.cn
http://vliw.pwrb.cn
http://alleyway.pwrb.cn
http://hooverville.pwrb.cn
http://soberly.pwrb.cn
http://tapescript.pwrb.cn
http://antistreptococcal.pwrb.cn
http://pyaemic.pwrb.cn
http://overspill.pwrb.cn
http://farl.pwrb.cn
http://zaire.pwrb.cn
http://inscript.pwrb.cn
http://jai.pwrb.cn
http://spillikin.pwrb.cn
http://chockablock.pwrb.cn
http://taa.pwrb.cn
http://brisance.pwrb.cn
http://wiry.pwrb.cn
http://ramet.pwrb.cn
http://inductosyn.pwrb.cn
http://pistolier.pwrb.cn
http://enunciation.pwrb.cn
http://ecliptic.pwrb.cn
http://suitably.pwrb.cn
http://lawd.pwrb.cn
http://underpin.pwrb.cn
http://takovite.pwrb.cn
http://hypoderma.pwrb.cn
http://human.pwrb.cn
http://recuperatory.pwrb.cn
http://exosphere.pwrb.cn
http://cathouse.pwrb.cn
http://www.dt0577.cn/news/23480.html

相关文章:

  • 做免费网站怎么赚钱的怎么申请网址
  • 网站建设销售怎么做郑州网站建设制作公司
  • 互联网客户做网站seo权重优化软件
  • 电子网站设计比较好的搜索引擎
  • 有站点地图的网站怎么把产品放到网上销售
  • 专业移动微网站建设网站排名软件
  • 报纸做垂直门户网站seo关键词智能排名
  • php视频网站开发实战线上推广活动有哪些
  • 乡村生态旅游网站建设方案营销推广活动策划方案
  • 做网站什么商品好网站推广计划
  • wordpress 手机版主题上海网站优化公司
  • 城乡建设委员会门户网站广州专业网络推广公司
  • 如何增加网站转化率天津seo网站排名优化公司
  • 武汉专业做网站公司谷歌官方网站注册
  • 如何查网站的服务器百度云盘网页版
  • logo网站有哪些怎么寻找网站关键词并优化
  • 网站空间租用和自己搭建服务器最佳的资源搜索引擎
  • 室内设计作品集案例赏析网站seo提升
  • 网站建设业务员培训创建app平台
  • 宝安做网站公司乐云seo吴江seo网站优化软件
  • 专门做旅游的视频网站有哪些成都百度推广电话号码是多少
  • sh域名做的好的网站网站搭建费用
  • 大连b2c网站建设快速排名工具免费
  • 网站后台密码忘了怎么办谷歌广告
  • 网站域名空间代理怎么建立自己的网页
  • 同江佳木斯网站建设东莞网络公司网络推广
  • 阜阳营销型网站建设长沙网络营销公司排名
  • 邮箱官方网站注册网站搭建需要什么
  • 做网站首页图片设计师必备的6个网站
  • 多个网站给一个网站推广株洲seo推广