在Go中,要使struct字段在包外可访问,字段名必须以大写字母开头。这被称为导出字段。
在您的原始cards.go文件中,Card结构体的name字段没有大写,这意味着它没有导出,也无法在包外访问。要解决此问题,您应该更改
名称
到
姓名
。这将导出该字段,允许其他包访问它。
卡片走
package cards
type Card struct {
Name string // Updated to capitalize the first letter for exporting
}
var cardSet []Card
func GetCards() []Card {
var aragornCard Card
aragornCard.Name = "Aragorn" // Updated to use the capitalized field name
cardSet = append(cardSet, aragornCard)
return cardSet
}
main.go
package main
import (
"fmt"
"example.com/cards"
)
func main() {
var cardsInPlay []cards.Card
cardsInPlay = cards.GetCards()
fmt.Println(cardsInPlay[0].Name) // Accessing the exported 'Name' field
}
更改后,Card结构中的Name字段现在可以在main.go文件中访问。如需更多示例,请随时查看Go中导出名称的教程:
https://go.dev/tour/basics/3