回首忆惘然
使用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) }}