切片可以引用不同索引范围内的差异数组/切片,还是有一个方便的解决方法?

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

这样的东西

slice := make([]byte, 5)
slice[0:2] = someArray[3:5]  // I don't want to copy someArray[3:5], I want slice[0:2] to reference it
slice[2:5] = someArray[0:3]  // similarly, I want slice[2:5] to reference someArray[0:3]

当然,以上代码不会产生理想的结果,只是为了满足我的要求。

arrays go indexing slice
1个回答
0
投票

不,去切片不能做到这一点。切片仅是三个值:基础数组,容量和长度。这是基础数组的简单视图。

不过,您可以使用相同的基础数组来包含两个切片。

slicea:=someArray[3:5]
sliceb:=someArray[0:3]

[slicea的长度为2,sliceb的长度为3,它们是同一数组上的不相交的视图。

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