为什么变量n2返回一个整数而不是切片?

我在 go slices 上做一些练习,遇到了一个场景,其中 slice 变量被强制转换为整数。

package main

import "fmt"

func main() {
    var sli []int

    numbers := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    fmt.Println(sli == nil)
    sli = numbers[2:4]
    numbers[5] = 100
    fmt.Println(sli, len(sli), cap(sli))
    news := append(sli, 500, 500)

    fmt.Println(news)
    fmt.Println(sli)
    fmt.Println(numbers)
    n2 := copy(sli, news)

    fmt.Println(n2)
}

n 变量打印 2 insead of [2] 或任何表明它是 slice 的东西。这是 goplay 地面链接https://play.golang.org/p/2Ym9RLX1eo_8

回答

https://golang.org/pkg/builtin/#copy

Copy 返回复制的元素数,这将是 len(src) 和 len(dst) 中的最小值。

sli = numbers[2:4]- 所以sli长度为 2。


以上是为什么变量n2返回一个整数而不是切片?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>