2 回答
TA贡献1876条经验 获得超5个赞
答案是“这真的有用吗?” 取决于您的期望。在http://play.golang.org/p/7Z5hKioTI_中考虑此示例
package main
import "fmt"
func main() {
fmt.Println("0. Array:")
var a = [...]int{4, 5, 6, 7, 8, 9} //assign
fmt.Println(a, "\n")
fmt.Println("1. Slice:")
var as []int
as = a[:] //assign
fmt.Println(as, "\n")
fmt.Println("new slice:")
ns := make([]int, len(a))
copy(ns, a[:])
fmt.Print(ns, "\n\n")
fmt.Println("modifying array...")
a[0] = 10
fmt.Print("array is now:\n", a, "\n\n")
fmt.Print("slice is now:\n", as, "\n\n")
fmt.Print("new slice is still:\n", ns, "\n")
}
它显示了切片如何具有基础数组,以及OP中的示例使用相同的基础数组来构成切片。如果要使切片具有独立的内容,则必须制作新的切片并复制数据。(或者有附加的技巧...)
另外请注意,println将数据发送到stderr而不是stdout,并且将某些数据类型的格式设置为与fmt.Println不同。为避免混淆,最好保持使用fmt.Println的习惯。
- 2 回答
- 0 关注
- 190 浏览
添加回答
举报