go语言学习笔记 — 基础 — 高级数据类型 — 结构体(8):如何在包中引用另外一个包的结构体?

本文介绍了Go语言中如何处理不同package之间的引用。当两个源文件不在同一package时,需要导入并使用包名;若在同一package,可以直接使用定义的结构体。示例中展示了room.go和msg.go的包引用情况,并解释了编译和运行时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 两个go源文件不属于同一个package

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

room.go

package room

type Rule struct{
    name string
    age  int    //your code
}

msg.go

package msg

import "room"

var a room.Rule
  • 两个go源文件属于同一个package

如果这两个文件属于同一个package的话,直接用Rule就行了,无需导入包名。但在运行或编译时,需要加上结构体所在的go源文件。

room.go

package main

type Rule struct{
    name string
    age  int    //your code
}

main.go

package main

var a Rule

func main() {
    fmt.Println(a)
}

运行、编译

# go run main.go room.go
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值