golang中如何在包中引用另外一个包的结构体?

![![图片描述][2]][1]

图片描述

如图所示:我在room.go文件中定义了结构体:Rule,我想在msg.go文件中引用这个结构体,为什么引用不到啊?

阅读 31.1k
3 个回答

问题原因是因为包名的定义为:internal
该包的详解如图:图片描述

新手上路,请多包涵

将room.go所在的package引入到msg.go中,然后在msg.go中使用的时候加上包名。
room.go

package room
type Rule struct{
//your code
}

msg.go

import "room"

var a room.Rule

如果这两个文件是同一个package的话,直接用Rule就行了,无需引入。

建议项目不是特别大的话,把文件平铺,不要分文件夹组织。 golang的风格就是这样。

如果分文件夹的话,一般也就分一层,每一个都是一个独立的package 。 需要引用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题