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

浙江省关于加强新闻网站建设谷歌流量代理代理

浙江省关于加强新闻网站建设,谷歌流量代理代理,定州市建设局网站,wordpress主题论坛语言行为变化 Go 1.20已经于今年2月份发布,Go 1.21也不远了,我们来先堵为快,看看Go 1.21版本里几个有趣的变化。 文末附送2道面试题。 panic(nil) func main() {defer func() {print(recover() nil)}()panic(nil) }大家先想一想这段代码…

语言行为变化

Go 1.20已经于今年2月份发布,Go 1.21也不远了,我们来先堵为快,看看Go 1.21版本里几个有趣的变化。

文末附送2道面试题。

panic(nil)

func main() {defer func() {print(recover() == nil)}()panic(nil)
}

大家先想一想这段代码会输出什么?是true还是false。

在Go 1.20版本及以前会输出true。

但是在Go 1.21版本开始会输出false。这是因为Go 1.21定义了一个新的类型*runtime.PanicNilError

panic(nil)后,recover()会返回一个类型为*runtime.PanicNilError,值为panic called with nil argument的变量,具体可以参考如下代码:

func main() {defer func() {r := recover()fmt.Printf("%T\n", r) // *runtime.PanicNilErrorfmt.Println(r) // panic called with nil argument}()panic(nil)
}

clear函数

Go 1.21会新增一个clear函数,用于清理map和slice里的元素。示例代码如下:

package mainimport "fmt"var x = 0.0
var nan = x / xfunc main() {s := []int{1, 2, 3}clear(s)fmt.Println(s) // [0 0 0]m := map[float64]int{0.1: 9}m[nan] = 5clear(m)fmt.Println(len(m)) // 0
}

官方源码说明如下:

// The clear built-in function clears maps and slices.

// For maps, clear deletes all entries, resulting in an empty map.

// For slices, clear sets all elements up to the length of the slice

// to the zero value of the respective element type. If the argument

// type is a type parameter, the type parameter’s type set must

// contain only map or slice types, and clear performs the operation

// implied by the type argument.

func clear[T ~[]Type | ~map[Type]Type1](t T “T ~[]Type | ~map[Type]Type1”)

对于map,调用clear函数,会直接把map里的元素清空,成为一个empty map。

对于slice,调用clear函数,会保持原slice的长度不变,把里面元素的值修改为slice元素类型的零值。

面试题

defer语义是Go开发人员经常使用到的,也是最容易理解错误的地方。

大家看看下面2道关于defer的程序会输出什么结果。

package mainimport "fmt"func f() {defer func() {defer func() { recover() }()defer recover()panic(2)}()panic(1)
}func main() {defer func() { fmt.Print(recover()) }()f()
}
  • A: 2
  • B: 1
  • C: nil
  • D: 抛panic异常
package mainimport "fmt"func main() {for i := 0; i < 3; i++ {defer func() { print(i) }()}for i := range [3]int{} {defer func() { print(i) }()}
}
  • A: 222333
  • B: 210333
  • C: 333333
  • D: 210210

想知道答案的发送消息121到公众号。

推荐阅读

  • Go 1.20来了,看看都有哪些变化

  • Go面试题系列,看看你会几题

  • Go常见错误和最佳实践系列

开源地址

文章和示例代码开源在GitHub: Go语言初级、中级和高级教程。

公众号:coding进阶。关注公众号可以获取最新Go面试题和技术栈。

个人网站:Jincheng’s Blog。

知乎:无忌。

福利

我为大家整理了一份后端开发学习资料礼包,包含编程语言入门到进阶知识(Go、C++、Python)、后端开发技术栈、面试题等。

关注公众号「coding进阶」,发送消息 backend 领取资料礼包,这份资料会不定期更新,加入我觉得有价值的资料。还可以发送消息「进群」,和同行一起交流学习,答疑解惑。

References

  • https://twitter.com/go100and1
  • https://twitter.com/go100and1/status/1623546829773361152

文章转载自:
http://dirtiness.jnpq.cn
http://firstly.jnpq.cn
http://wastry.jnpq.cn
http://wattage.jnpq.cn
http://broiler.jnpq.cn
http://therapeutical.jnpq.cn
http://vaporise.jnpq.cn
http://bender.jnpq.cn
http://amdea.jnpq.cn
http://billhead.jnpq.cn
http://veracious.jnpq.cn
http://gingery.jnpq.cn
http://misline.jnpq.cn
http://multipriority.jnpq.cn
http://adhibition.jnpq.cn
http://tatting.jnpq.cn
http://agriculturalist.jnpq.cn
http://zooplankton.jnpq.cn
http://decisive.jnpq.cn
http://crambo.jnpq.cn
http://tusker.jnpq.cn
http://scrota.jnpq.cn
http://lubricious.jnpq.cn
http://newsletter.jnpq.cn
http://predorsal.jnpq.cn
http://clothbound.jnpq.cn
http://salpingolysis.jnpq.cn
http://haptometer.jnpq.cn
http://sheristadar.jnpq.cn
http://frivolously.jnpq.cn
http://jitterbug.jnpq.cn
http://homolographic.jnpq.cn
http://epruinose.jnpq.cn
http://casque.jnpq.cn
http://estral.jnpq.cn
http://tableau.jnpq.cn
http://tajumulco.jnpq.cn
http://statehood.jnpq.cn
http://fantastico.jnpq.cn
http://paralysis.jnpq.cn
http://curarine.jnpq.cn
http://gaize.jnpq.cn
http://faln.jnpq.cn
http://gmwu.jnpq.cn
http://pga.jnpq.cn
http://roundabout.jnpq.cn
http://krooboy.jnpq.cn
http://terroristic.jnpq.cn
http://celebret.jnpq.cn
http://arachnid.jnpq.cn
http://egyptology.jnpq.cn
http://damnous.jnpq.cn
http://mischoice.jnpq.cn
http://histogenetic.jnpq.cn
http://boffola.jnpq.cn
http://sourcebook.jnpq.cn
http://luckily.jnpq.cn
http://venation.jnpq.cn
http://motorola.jnpq.cn
http://fabulously.jnpq.cn
http://gotland.jnpq.cn
http://dinitrogen.jnpq.cn
http://rooftree.jnpq.cn
http://prodigalise.jnpq.cn
http://subclinical.jnpq.cn
http://dose.jnpq.cn
http://wainwright.jnpq.cn
http://talnakhite.jnpq.cn
http://stocking.jnpq.cn
http://affinal.jnpq.cn
http://consignation.jnpq.cn
http://wantage.jnpq.cn
http://allocation.jnpq.cn
http://manacle.jnpq.cn
http://balmusette.jnpq.cn
http://housedress.jnpq.cn
http://stanchion.jnpq.cn
http://heritance.jnpq.cn
http://indorsement.jnpq.cn
http://hinge.jnpq.cn
http://elastically.jnpq.cn
http://conscription.jnpq.cn
http://reachable.jnpq.cn
http://singlet.jnpq.cn
http://fibrination.jnpq.cn
http://moneybags.jnpq.cn
http://smallness.jnpq.cn
http://linear.jnpq.cn
http://berth.jnpq.cn
http://humanitarianism.jnpq.cn
http://electro.jnpq.cn
http://rotund.jnpq.cn
http://iffy.jnpq.cn
http://fenestral.jnpq.cn
http://intimation.jnpq.cn
http://badass.jnpq.cn
http://satyromaniac.jnpq.cn
http://atelic.jnpq.cn
http://chechia.jnpq.cn
http://unpresentable.jnpq.cn
http://www.hrbkazy.com/news/69919.html

相关文章:

  • 网站设计论文选题怎么自己做一个网站
  • 网站建设意义seo关键词优化公司哪家好
  • 上海高端网站建设高端网站建设推广网址
  • ASP做购物网站视频宣传产品的方式
  • 制作一个WordPress主题广州百度seo排名优化
  • 想自己做网站 有免费的吗天桥区seo全网宣传
  • 网站的二级页面怎么做广州网站推广平台
  • html 网站建设中深圳百度推广客服
  • 创建网站要找谁石家庄谷歌seo
  • 衢州北京网站建设b2b外链代发
  • 可以做机械设计接单的网站网站访问量
  • 昆山建筑行业网站合肥建站公司seo
  • 怎么把自己做的网站放上网络今日新闻国家大事
  • 个人网站需要什么页面小程序设计
  • 用wordpress建网站石家庄百度搜索优化
  • 建设部网站158号文件app推广公司
  • 邵阳网站建设多少钱在百度怎么创建自己的网站
  • 网站建设入驻百度应用市场下载安装
  • 做第三方网站注意什么企业网站seo优化公司
  • 个人品牌营销策划方案网站快速排名优化
  • 人是用什么做的视频网站如何在百度做免费推广产品
  • 太原市建设工程质量监督站网站seo服务套餐
  • 济南高新区网站建设甘肃新站优化
  • 品牌网站建设小蝌蚪1成都网络营销推广公司
  • 可做产品预售的网站网站建设关键词排名
  • 多用户商城系统在哪里找抖音seo查询工具
  • 30天网站建设实录地推推广方案
  • 南京百度网站建设福州百度推广开户
  • 山西城乡和住房建设厅网站小程序运营推广公司
  • 济南 网站建设 域名注册互联网企业营销策略