登录
首页 >  Golang >  Go问答

范围的定义及其与函数的关系是什么?

来源:stackoverflow

时间:2024-02-09 10:54:24 234浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《范围的定义及其与函数的关系是什么?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

循环数组和切片的首选方法之一是像这样使用 range

arr = []int{1, 2}

for index, item := range arr {
  continue
}

我知道 range 是如何工作的,我已经使用过多次了。但我仍然不确定幕后的情况是什么。它是 range(arr) 的函数和修改吗?它返回 2 个变量的事实让我这么想,但我需要确认。

其背后的实现是什么?


正确答案


范围是根据 speckeywords 之一。

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

For statements with range clause

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

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

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

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

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>