为什么在遍历结构片段时无法访问结构字段

时间:2019-08-06 19:40:48

标签: go struct slice

我在包中有一个函数,该函数返回我在包中定义的特定结构的切片,然后将其导入到另一个主包中,我想遍历该函数返回的切片并访问结构字段,出现“未定义”错误。

“ s.a未定义(无法引用未导出的字段或方法a)”

我想念什么?

感谢您的帮助。

包装代码:

package test_package

import "fmt"

type Struct struct {
    a string
    b string
}

func ReturnStructSlice() ([]Struct){
    s1 := Struct{"a", "b"}
    s2 := Struct{"c", "d"}

    structSliceToReturn := []Struct{s1, s2}

    for _, s := range structSliceToReturn {
        fmt.Println(" ", s.a)
    }

    return structSliceToReturn
}

this is the main package:

package main

import (
    t "/test_package"
    "fmt"
)


func main() {
    sList := t.ReturnStructSlice()
    for _, s := range sList {
        fmt.Println(" ", s.a) \\ here I'm getting the error
    }
}

1 个答案:

答案 0 :(得分:2)

您需要将结构成员的首字母大写以将其导出。

type Struct struct {
    A string
    B string
}