package main
import ("fmt")
func main() {
var bts []byte =nil
fmt.Println("the result :", string(bts)) // why not panic ?
// the result :
}
答案 0 :(得分:1)
因为切片的零值(nil
)就像零长度切片一样。例如。你也可以声明一个切片变量,然后在一个循环中追加它:
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
可在此处找到更多详细信息:https://blog.golang.org/go-slices-usage-and-internals
答案 1 :(得分:1)