为了账号安全,请及时绑定邮箱和手机立即绑定

如果我修改我正在浏览的切片会发生什么?

如果我修改我正在浏览的切片会发生什么?

Go
GCT1015 2021-08-23 17:47:55
我最近注意到我已经这样做了:for t, ts := range timespans {    // remove current item    if t+1 < len(timespans) {        timespans = append(timespans[:t], timespans[t+1:]...)    } else {        timespans = timespans[:t]    }哪里var timespans []TimeSpan和type TimeSpan [2]time.Timerange内部如何运作?它是否像for i:=0; i<42; i++循环一样工作(并跳过项目),或者它的范围是否像timespans循环第一次开始时所看到的那样,或其他东西?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

它适用于切片的副本,您可以就地修改切片的数据,但它会忽略附加等。


查看完整回答
反对 回复 2021-08-23
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

刚刚在语言规范中找到了答案。

范围表达式在开始循环之前计算一次[...]`

所以它在副本上运行。太棒了!


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信