进行切片变异的最佳做法

问题描述 投票:-3回答:1

知道底层原始数组是否正在发生突变,或者在传递切片时,其原始数组的副本是否正在发生突变不是很可预测的

a = [3]int {0, 1, 2}
s = a[:]
s[0] = 10
a[0] == s[0] // true


s = append(s, 3)
s[0] = 20
a[0] == s[0] // false

让我说今天我有这种处理

a = [3]int {0, 1, 2}
s = some_func(a[:]) // returns slice
process(s) // a is getting mutated because so far some_func hasn't caused the underlying array to be copied

现在是明天

a = [3]int {0, 1, 2}
s = some_func(a[:]) // returns slice, does append operations
process(s) // a is not getting mutated because some_func caused the underlying array to be copied

那么切片的最佳实践是什么?

go slice
1个回答
1
投票
promises它

总是

© www.soinside.com 2019 - 2024. All rights reserved.