【问题标题】:How to use one class in another class that is in the same package?如何在同一个包中的另一个类中使用一个类?
【发布时间】: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,例如。
  • 大多数包都提供了某种新功能,但如果你的结构真的很简单,那就没有必要了。

标签: go package


【解决方案1】:

去掉card. 部分,它应该可以工作。它们都在同一个包中。

type Deck struct{
   Cards []Card
}

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2019-06-19
    • 2015-07-28
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2021-05-21
    相关资源
    最近更新 更多