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

究竟什么是“范围”?它是一个函数吗?

究竟什么是“范围”?它是一个函数吗?

Go
烙印99 2022-11-08 15:13:55
循环遍历数组和切片的一种首选方法是range像这样使用arr = []int{1, 2}for index, item := range arr {  continue}我知道它是如何range工作的,我已经多次使用它。但我仍然不确定幕后是什么。它是 的功能和修改range(arr)吗?它返回 2 个变量的事实让我这么想,但我需要确认。它背后的实现是什么?
查看完整描述

3 回答

?
江户川乱折腾

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

根据规范,范围是关键字之一。

The following keywords are reserved and may not be used as identifiers.


break        default      func         interface    select

case         defer        go           map          struct

chan         else         goto         package      switch

const        fallthrough  if           range        type

continue     for          import       return       var

对于带有范围子句的语句

带有“range”子句的“for”语句遍历数组、切片、字符串或映射的所有条目,或通道上接收的值。对于每个条目,如果存在,它将迭代值分配给相应的迭代变量,然后执行该块。

RangeClause = [ ExpressionList "=" | IdentifierList ":=" ] "range" Expression .



查看完整回答
反对 回复 2022-11-08
?
12345678_0001

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

带有子句forrange子句迭代在通道上接收到的数组、切片、映射、字符串和值。range 关键字是编译器用来区分这种类型的迭代和for语句中的其他迭代的语法。

编译器for使用range子句实现。规范用范围子句详细描述了 for。


查看完整回答
反对 回复 2022-11-08
?
Helenr

TA贡献1780条经验 获得超3个赞

这是 for 循环用来从中获取下一个对象的迭代器模式。



查看完整回答
反对 回复 2022-11-08
  • 3 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

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