考慮到下面的代碼,我已經看到一些代碼使用這種格式v[:]
傳遞全切片(不是它的一部分)作爲參數。通過全切片範圍作爲參數
v[:]
和v
之間有什麼區別嗎?或者它只是一個開發人員的偏好?
我在下面做的測試表明我沒有區別。我錯過了什麼嗎?
package main
import (
"fmt"
)
func main() {
v := []byte {1, 2, 3}
printSliceInfo(v)
printSliceInfo(v[:])
}
func printSliceInfo(s []byte) {
fmt.Printf("Len: %v - Cap: %v - %v\n", len(s), cap(s), s)
}
所以,只是開發人員的偏好!好的,現在很清楚! – Azize
我想是這樣的......我從來沒有見過在野外用v [:]'傳遞片段的情況,我不知道爲什麼有人會這麼做 - 這是沒有必要的,可能只是令人困惑。 – Adrian
這裏只是我看到它的一個地方。在這個pkg中,3個示例以這種方式使用slice。 https://golang.org/pkg/crypto/rsa/#example_VerifyPKCS1v15 – Azize