在进行中,将切片作为参数传递时,为什么使用[:]
而不是直接传递切片?
例如,
slice := foo(...) // create a dummy slice
bar(slice[:]) // now pass the slice as an argument to bar
我想知道使用bar(slice)
与bar(slice[:])
有什么区别?
通过指定两个索引(下限和上限,用冒号分隔)形成切片:
a[low : high]
这将选择一个半开范围,其中包括第一个元素,但不包括最后一个。
以下表达式创建一个切片,其中包含a的元素1到3:
a[1:4]
参考:A tour of Go
它们应该相同。没有区别。