13.2 range语句中的值

在"range"语句中生成的数据的值是真实集合元素的拷贝,它们不是原有元素的引用。这意味着更新这些值将不会修改原来的数据。同时也意味着使用这些值的地址将不会得到原有数据的指针。
package main
import "fmt"
func main() {  
    data := []int{1, 2, 3}
    for _, v := range data {
        v *= 10 // 通常数据项不会改变
    }
    fmt.Println("data:", data) // 程序输出: [1 2 3]
}
程序输出:
data: [1 2 3]

如果你需要更新原有集合中的数据,使用索引操作符来获得数据。

package main
import "fmt"
func main() {  
    data := []int{1, 2, 3}
    for i, _ := range data {
        data[i] *= 10
    }
    fmt.Println("data:", data) // 程序输出 data: [10 20 30]
}
程序输出:
data: [10 20 30]
下一节:switch 语句专门用来设计多分支条件结构。与 else/if 多分支结构相比,switch 结构更简洁,执行效率更高。