首页 > 编程开发 > Go语言    日期:2022-11-07 / 来自互联网 / 浏览

中禁止重新定义语言,所以 rsc 不能直接这么干。

因此将会由用户自己决定控制这个 “破坏”,方式将会是根据每个包的 go.mod 文件中的 go 行更改语义。

如果我们是在 Go1.30 对本文讨论的 for 循环改为迭代,那么在 go.mod 文件中的 go 版本声明是将是一个关键。

如下图示:

Go语言中的for循环有多坑?

Go 1.30 或更高版本将会每次迭代变量,而早期 Go 版本的将每次循环变量。

如此一来上述提到的 for 循环问题都会在一定范围内被解决。

总结

for 循环时的变量问题,一直是各大 Go 考官爱考的题目,另外也确实在实际编程 Go 代码时会遇到这类坑。

虽然 rsc 希望在 go.mod 文件上开创先河,利用 go 版本的声明,去修改语义(不允许添加和删除)。这无疑是给 Go1 兼容性保障开了一个后门。

如果实施,本次变更会导致 Go 的前后版本语义有所不同。还不如变成一个 go.mod 文件的一个语义开关。

这显然是一个很折腾的思考题。

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章

1 2 3 4 5