当将切片作为参数传递时,为什么使用[:]?

问题描述 投票:0回答:2

在进行中,将切片作为参数传递时,为什么使用[:]而不是直接传递切片?

例如,

slice := foo(...)  // create a dummy slice
bar(slice[:])      // now pass the slice as an argument to bar

我想知道使用bar(slice)bar(slice[:])有什么区别?

go slice
2个回答
0
投票

通过指定两个索引(下限和上限,用冒号分隔)形成切片:

a[low : high]

这将选择一个半开范围,其中包括第一个元素,但不包括最后一个。

以下表达式创建一个切片,其中包含a的元素1到3:

a[1:4]

参考:A tour of Go


0
投票

它们应该相同。没有区别。

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