golang slice的声明和初始化

为什么会报错呢?

为什么用append()却不会报错??

用s[i] = i+3 这种方法会报错

------------------------------------------------------------

package main

import (
        "log"
)

func main()  {

        s := make([]int, 2, 3)
        for i:= 0; i< 10; i++ {
                //s = append(s, i+3) //为什么这种可以,下面这种不行??
                s[i] = i+3
        }

        log.Printf("%#v", s)
        log.Println("len:", len(s))
        log.Println("cap:", cap(s))
        log.Println("mm:", s[8])
        for k, v := range s {
                log.Println("k/v:", k, v)
        }
}

  

原文地址:https://www.cnblogs.com/oxspirt/p/14646739.html