GoLang Slice默认将上下边界混淆

问题描述 投票:-2回答:1
package main
import "fmt"
func main() {
    s := []int{2, 3, 5, 7, 11, 13}

    s=s[0:4]
    fmt.Println(s)  // 1st

    s = s[1:4]
    fmt.Println(s) // 2nd

    s = s[:2]
    fmt.Println(s) //3rd

    s = s[1:]
    fmt.Println(s) // 4th

    s= s[:]
    fmt.Println(s)  // 5th

    s=s[0:4]
    fmt.Println(s)  // 6th 
}

我得到的输出是这个

[2 3 5 7]
[3 5 7]
[3 5]
[5]
[5]
[5 7 11 13]

为什么在第三名只有3 5为什么不是2 3

假设我要通过这种逻辑每次切片时,则减小:为什么最后一行有5 7 11 13。

如果假设上述逻辑是错误的,那么:为什么最后一行输出[5 7 11 13]为什么不以2开头?

Here is the link from where I am going thru

package main import“ fmt” func main(){s:= [] int {2,3,5,7,11,13} s = s [0:4] fmt.Println(s)// 1st s = s [1:4] fmt.Println(s)//第二个s = s [:2] fmt.Println(s)// 3rd ...

go slice
1个回答
4
投票

切片指的是基础数组。重新切片切片不会影响基础数组。

© www.soinside.com 2019 - 2024. All rights reserved.