【发布时间】:2013-12-28 05:25:21
【问题描述】:
我对 Go 还很陌生,我正在制作一个小型抽认卡应用程序。 我的包结构是这样的
VocabHelper
|
-|src
--|com
---|wks
----|card
------Card.go
------Deck.go
----|main
------main.go
Deck 和 Card 是两个独立的类,但它们在同一个包中:
Card.go
package card
type Card struct{
Question string
Answer string
}
Deck.go
package card
import (
"math/rand"
)
type Deck struct{
Cards []card.Card
}
当我尝试编译项目时,编译器会显示undefined:card,即使卡片与卡片组在同一个包中。如何在甲板类中使用卡片类?
【问题讨论】:
-
您可能需要记住的几件事:Go 没有类(这不仅仅是一个迂腐的术语......您真的不应该将结构视为类在 Java 或 C# 中),没有理由不能将这两个文件合并为一个(尽管拥有多个文件也没有什么问题),我认为使用小写文件名是传统的......
-
感谢您的提示。顺便说一句:是否有必要创建一个 New 构造函数,或者我可以假设开发人员知道如何初始化 Deck,例如。
-
大多数包都提供了某种新功能,但如果你的结构真的很简单,那就没有必要了。