range 数组和切片的差异
2020-10-13
| 2023-7-17
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
Go 语言的 range 表达式遵循如下两个规则:
  1. range表达式只会在for语句开始执行时被求值一次,无论后边会有多少次迭代
  1. range表达式的求值结果会被复制,也就是说,被迭代的对象是range表达式结果值的副本而不是原值
在使用 range 遍历数组和切片遇到需要修改遍历对象本身的情况时,便会出现差异。

遍历数组

打印结果为:[7 3 5 7 9 11]
range 循环中 e 并未随着数组改变,因为数组是值类型的。

遍历切片

打印结果为:[22 3 6 10 15 21]
range 循环中 e 并会随着数组改变而改变,因为切片是引用类型的。
Golang
  • Golang 基础
  • Go-Advance 总结多个goroutine按既定顺序运行
    目录