登录
首页 >  Golang >  Go问答

在项目中使用多个包与单个包

来源:stackoverflow

时间:2024-04-25 20:18:38 317浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《在项目中使用多个包与单个包》,涉及到,有需要的可以收藏一下

问题内容

我的基本 go 项目结构如下:

src/github.com/jeeves/my-project/
    |- main.go
    |- models/
        |- user.go

main.go 的内容是 -

package main

var log = initializelogger()

func main() {

    // do stuff

}

func initializelogger() *logging.logger {

    // build and return a logger

}

models/user.go 的内容是

package main

type User struct {
    Firstname  string    `json:"first_name"`
    Lastname   string    `json:"last_name"`
}

// other functions

我很好奇设置包结构的最佳方法 -

  1. 我的 models/user.go 应该属于 package models 而不是 package main 的一部分吗?有什么区别?我如何知道何时使用?

  2. 如果我确实使用 package modelsmodels/user.go 如何访问 log 中定义的全局 main.go 对象? (如您所见,我试图定义一个记录器一次并使其在我的应用程序中可访问。)

谢谢!


解决方案


为您的日志 API 制作一个单独的包,

将代码构建到包中应该基于功能, 包应该彼此独立,并且它们的名称应该代表该包的含义。

如果您有多个 models 并且 user 是其中之一,并且如果稍后要添加更多 model 类型,则制作一个包,例如 usercustomer...,它们是子包的`型号。

导入 user 时执行 .../modle/user

类似于 encoding/json

无需对现有代码进行太多更改,只需进行最少的更改即可添加新包。

这里是社区维护的 github repository,其中包含更详细的项目布局信息。

好了,本文到此结束,带大家了解了《在项目中使用多个包与单个包》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>