Go中标识符和表达式的区别

http://golang.org/ref/spec#RangeClause

RangeClause = ( ExpressionList "=" | IdentifierList ":=" ) "range" Expression .

试图理解范围子句,特别是标识符表达式之间的区别

谢谢。


吃鸡游戏
浏览 225回答 1
1回答

回首忆惘然

使用range关键字,您可以迭代许多事情并在这样做的同时分配结果。您可以分配给两件事:标识符(通过IdentifierList)表达式(通过ExpressionList)身份标识这些是用于内部循环的新变量。他们必须遵守标识符规则(Unicode 名称、无空格等)。如果使用这些,则必须:=在列表和range关键字之间使用运算符。例子:for i := range []int{1,2,3} {    fmt.Println(i)}表达式您不一定需要声明新变量,您可以使用现有变量,甚至可以评估返回存储位置的表达式。几个例子:分配给一个指针(Play):var i = 0func main() {    p := &i    for *p = range []int{1,2,3} {        fmt.Println(i)    }}返回一个指针并分配它(Play):var i = 0func foo() *int {    return &i}func main() {    for *foo() = range []int{1,2,3} {        fmt.Println(i)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go