关于slice的切片问题

今天在看golang的源码的时候发现一个切片的奇怪用法

func (t *uncommonType) methods() []method {
    if t.mcount == 0 {
        return nil
    }
    return (*[1 << 16]method)(add(unsafe.Pointer(t), uintptr(t.moff), "t.mcount > 0"))[:t.mcount:t.mcount]

}

我一般用切片s[i:j] 但是这里像是用了三个参数,初步测试应该不是步长。求教高人指点。

已邀请:

mooy

赞同来自: pysta dncmn

第三个参数是cap。slice[0:10:20]表示len10,cap20,如果底层数组够的话。

dncmn - 90it男

赞同来自: meagle

是从1.2版本开始的用法:https://golang.org/doc/go1.2

sunanxiang - Gopher,IT 男,嵩鼠,游戏狂

赞同来自:

准确的说,是第三个参数-第一个参数才是cap。

要回复问题请先登录注册