你可以从别人那里汲取某些思想,但必须用你自己的方式加以|

makalo

园龄:5年11个月粉丝:144关注:15

GO 模块化

任何语言都不可避免要进行模块化,这里就简单介绍下

同package 同文件夹下 不同文件之间调用

案例

该方式必须所有文件都为main,也就是包名相同,才可以运行

test.go

package main

func sayHello() {
	println("Hello makalo")
}

main.go

package main // 声明 main 包,表明当前是一个可执行程序

func main() { // main函数,是程序执行的入口
	sayHello()
}

目录结构

image-20230203161451258

编译并运行

这时候执行的命令,不再是

go run main.go

而是

go run test.go main.go

结果

image-20230203160355824

不同package 不同文件夹下 不同文件之间 调用

这里有大坑,谨慎进入

原因参考这里:

https://blog.csdn.net/qq_42428613/article/details/119327441?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-119327441-blog-124147043.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.2&utm_relevant_index=4

总结一下注意的点:

  • 在 go1.16 版本发布后,go module 由原来的默认值auto 变为on 了,意味着 go module 默认已经开启了,所以如果你看的资料太老,原来的资料上还是 GOPATH 方式,而你的 go 版本又比较新,就会有问题,因为GOPATH 和 GO MOD 不能一起使用
  • 不要在GOPATH/src 下写了,现在都是 使用 go mod 只要你基础环境配好,随便在那个目录写可以
  • go.mod才是根目录

有关go mod ,请参考:

https://www.cnblogs.com/makalochen/p/17090291.html

目录结构

image-20230203185716482

main.go

package main // 声明 main 包,表明当前是一个可执行程序

import "modtest/test"

func main() { // main函数,是程序执行的入口
	test.SayHello2()
}

test.go

package test

// 首字母大写才可被包外访问
func SayHello2() {
	println("Hello makalo2")
}

go.mod

go.mod 文件是由 go mod 相关命令自动生成,如:

mod init modtest

就会生成

module modtest

go 1.19

运行结果

image-20230203190225826

本文作者:makalo

本文链接:https://www.cnblogs.com/makalochen/p/17090294.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   makalo  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-02-03 自动化测试相关
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起