为了账号安全,请及时绑定邮箱和手机立即绑定

从结构中的嵌入切片访问值

从结构中的嵌入切片访问值

Go
紫衣仙女 2022-03-02 13:16:25
我正在尝试从结构中的嵌入式切片访问值。如果可能的话,我如何通过索引来做到这一点,并且不显式调用私有嵌入对象(从包外部访问时甚至不是一个选项)?package mainimport (    "fmt")type A struct {    aSlice}type aSlice []stringfunc main() {    a := A{[]string{"hello", "world"}}    fmt.Println(a.aSlice[0]) // works, but can't be accessed outside package    fmt.Println(a[0]) // doesn't work, but looking for this something like this}
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

我想我在这篇文章中找到了答案:golang anonymous field of type map

嵌入时,只能“提升”字段和方法。对于其他一切,它们只是另一个领域。

在这种情况下,结构将相当于:

type A struct {
    aSlice aSlice
    }

这是有道理的,为什么它的值只能通过A.aSlice索引访问。


查看完整回答
反对 回复 2022-03-02
?
精慕HU

TA贡献1845条经验 获得超8个赞

如果将切片声明为导出类型,则可以访问嵌入的切片。但是你仍然不能做索引。


package a

type Slice []string

type A struct {

   Slice

}


package main

import "a"

func main() {

  _a := a.AB{[]string{"hello", "world"}}

  fmt.Println(_a.Slice[0])

}


查看完整回答
反对 回复 2022-03-02
  • 2 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号