Golang中包的使用

在专业实训中遇见了一些问题,之前用go写的程序全部都是只有一个`package main`,而这次实训中考虑到项目代码文件可能会比较多,不再适合只用一个包来组织,所以尝试使用多个包来组织项目,期间也踩了一些坑。

Golang 项目子目录下的包

在专业实训中遇见了一些问题,之前用go写的程序全部都是只有一个package main,而这次实训中考虑到项目代码文件可能会比较多,不再适合只用一个包来组织,所以尝试使用多个包来组织项目,期间也踩了一些坑。

最初我想的是只是通过目录树,创建一个子目录依旧是同一个main包的方式来组织代码,但是发现go程序找不到子目录文件中的函数,后来了解到golang中需要用包来组织项目结构,而不仅仅是目录树。

所以我将子目录下的文件的package改成了controllers,不过此时又遇到了如何导入的问题。我一开始使用的是 import ./controllers 这样相对路径的导入方式,但是出现了错误 local import “./cfg” in non-local package,经过查询得知 go mod init module 初始化的模块导入子目录中的包时,应该使用 import module/controllers 这样的形式。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
本站访客数:
Built with Hugo
Theme Stack designed by Jimmy