Go从入门到精通——自己编写非执行包
自己编写非执行包
自己编写的非执行包也可以用类似的方法引用。
下面我们将继续以 Hello world 为例来说明如何编写非执行包并在其他包中引用。
首先,在 src 目录下创建一个子目录 package1,在其中新建一个代码文件 package1.go,代码如下:
1 2 3 4 5 6 7 8 9 | package package1 import ( "fmt" ) func Hello() { fmt.Println( "Hello world!" ) } |
然后,在 src 目录下在创建一个子目录 test1,在其中新建一个代码文件 test1.go,代码如下:
1 2 3 4 5 6 7 8 9 | package main import ( "package1" ) func main() { package1.Hello() } |
最后,直接编译并执行 test1 包可以得到输出结果,如下:
我们再来研究一下这两个包的代码。package1 包的代码中,首先用以下代码:
package package1
声明了自己的包是 "package1"。
接下来的 import 语句导入了 fmt 包。
1 2 3 4 5 6 7 | import ( "fmt" ) func Hello(){ fmt.Println( "Hello world" ) } |
以上几行代码定义了一个 Hello 函数,功能是输出 "Hello world!"字样。特别要注意,在这里 Hello 函数的名字中,首字母 H 必须是大写字母。这是因为 Go 语言强制要求一个包中能够被其他包调用的函数必须是以大写字母开始命名的(这样的函数称作 exported function,即 "被导出的" 函数),小写字母开始的函数仅能在本地内部使用,对于其他包来说是 "不可见" 的。这也是 Go 语言与其他语言的一个显著不同之处。
再来看 test1 包,其中代码第一行声明了自己是 main 包,也就是可执行包。
package main
然后,import 语句中直接引用了 package1 这个包。
import{ "package1" }
接下来的可执行程序主函数 main 中,通过 "包名+.+函数名" 的方式调用了 package1 包中的 Hello 函数。
这个例子完整地演示了如何编写非执行包、如何在可执行包中引用自己编写的非执行包。package1 就是一个非执行包,而 test1 是一个可执行包,test1 包中调用了 package1 包中的 Hello 函数,输出了所需文字的信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具