Pointers 结构行为切片

Pointers 结构行为切片,pointers,go,struct,slice,composite-literals,Pointers,Go,Struct,Slice,Composite Literals,当我们声明一个结构片,但将数据类型设置为指向该结构的指针时,go是否会自动将文本转换为指针 类型书结构{ id int 名称字符串 } var帐簿=[]*帐簿{ {1,黄月亮},//-->这是指向书本的指针还是仅仅是书本 } 如果我将切片声明为指向结构的指针,go会自动将切片内的复合文本转换为指针吗 这是指向结构的指针的默认行为 当我们有结构指针p时,要访问结构的字段X,我们可以写*p.X。但是,这种表示法很麻烦,因此语言允许我们只写p.X,而不需要显式的解引用 如果我将切片声明为指向结构的指针

当我们声明一个结构片,但将数据类型设置为指向该结构的指针时,go是否会自动将文本转换为指针

类型书结构{ id int 名称字符串 } var帐簿=[]*帐簿{ {1,黄月亮},//-->这是指向书本的指针还是仅仅是书本 } 如果我将切片声明为指向结构的指针,go会自动将切片内的复合文本转换为指针吗

这是指向结构的指针的默认行为

当我们有结构指针p时,要访问结构的字段X,我们可以写*p.X。但是,这种表示法很麻烦,因此语言允许我们只写p.X,而不需要显式的解引用

如果我将切片声明为指向结构的指针,go会自动将切片内的复合文本转换为指针吗

这是指向结构的指针的默认行为

当我们有结构指针p时,要访问结构的字段X,我们可以写*p.X。但是,这种表示法很麻烦,因此语言允许我们只写p.X,而不需要显式的解引用

它将是一个指向book的指针,与&book{1,Yellow moon}相同,但是规范允许省略类型和&operator,因为它从类型中显而易见

var books = []*book {
    {1, "Yellow moon"},  // This is the same as &book{1, "Yellow moon"}
}
在数组、切片或映射类型T的复合文字中,如果元素或映射键本身是复合文字,则可以省略相应的文字类型(如果它与T的元素或键类型相同)。类似地,当元素或键类型为*T时,作为复合文字地址的元素或键可以省略&T

它将是一个指向book的指针,与&book{1,Yellow moon}相同,但是规范允许省略类型和&operator,因为它从类型中显而易见

var books = []*book {
    {1, "Yellow moon"},  // This is the same as &book{1, "Yellow moon"}
}
在数组、切片或映射类型T的复合文字中,如果元素或映射键本身是复合文字,则可以省略相应的文字类型(如果它与T的元素或键类型相同)。类似地,当元素或键类型为*T时,作为复合文字地址的元素或键可以省略&T


可以定义有类型和无类型:


可以定义有类型和无类型:


这是一个指向书的指针,当然,因为你不能在指向书的指针片中存储任何东西。这是指向书的指针,当然,因为你不能在指向书的指针片中存储任何东西。字段访问与结构文本有什么关系?嗯,我想我搞错了,我想他所说的文字是字段,那么字段访问与结构文字有什么关系?嗯,我想我弄错了,我想他所说的文字是字段,对不起