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

我正在尝试从结构中的嵌入式切片访问值。如果可能的话,我如何通过索引来做到这一点,并且不显式调用私有嵌入对象(从包外部访问时甚至不是一个选项)?


package main


import (

    "fmt"

)


type A struct {

    aSlice

}


type aSlice []string


func 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

}


紫衣仙女
浏览 198回答 2
2回答

饮歌长啸

我想我在这篇文章中找到了答案:golang anonymous field of type map嵌入时,只能“提升”字段和方法。对于其他一切,它们只是另一个领域。在这种情况下,结构将相当于:type A struct {     aSlice aSlice     }这是有道理的,为什么它的值只能通过A.aSlice索引访问。

精慕HU

如果将切片声明为导出类型,则可以访问嵌入的切片。但是你仍然不能做索引。package atype Slice []stringtype A struct {   Slice}package mainimport "a"func main() {  _a := a.AB{[]string{"hello", "world"}}  fmt.Println(_a.Slice[0])}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go