我在包中有一个函数,该函数返回我在包中定义的特定结构的切片,然后将其导入到另一个主包中,我想遍历该函数返回的切片并访问结构字段,出现“未定义”错误。
“ 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
}
}
答案 0 :(得分:2)
您需要将结构成员的首字母大写以将其导出。
type Struct struct {
A string
B string
}