Go中同一软件包中的多个文件
我正在写我的第一个Go代码,其中包括发送电子邮件。在发现包Go中同一软件包中的多个文件,go,Go,我正在写我的第一个Go代码,其中包括发送电子邮件。在发现包net/smtp只支持Plain Auth(但outlook之类的一些提供商不支持它)之后,我要求提供一个解决方案,并被指给我 这段代码就像一个符咒,但由于它不是我自己写的,我想把它添加到一个单独的文件中,并在我的main.go中引用它 在同一个包中包含多个文件的正确方法是什么?我不想仅仅为代码创建一个不同的包,首先是因为它不是我的,其次是因为我认为这是一种“过度杀伤力”的方法,不是吗 我原以为只要文件在同一个目录中,我就可以有许多*.g
net/smtp
只支持Plain Auth
(但outlook之类的一些提供商不支持它)之后,我要求提供一个解决方案,并被指给我
这段代码就像一个符咒,但由于它不是我自己写的,我想把它添加到一个单独的文件中,并在我的main.go
中引用它
在同一个包中包含多个文件的正确方法是什么?我不想仅仅为代码创建一个不同的包,首先是因为它不是我的,其次是因为我认为这是一种“过度杀伤力”的方法,不是吗
我原以为只要文件在同一个目录中,我就可以有许多*.go
文件,但这似乎行不通。如果我只是创建一个包含该要点内容的文件,编译器将失败,因为预期的包,找到了import
。如果我添加类似于package auth
的内容,那么它会失败,因为找到了package auth(auth.go)和main(main.go)
那么,这种情况下的一般做法是什么?只需为所有内容创建程序包?一个目录中只能有一个程序包,而且看起来您不需要用于此添加的程序包,因此您只需将其放在单独的文件中,然后在顶部添加
程序包main
。拥有一个main
包并将所有东西都放在它下面在一定程度上起作用。当事情变得越来越大时,您必须将其分解为自包含的包。一个目录中只能有一个包,而且看起来您不需要包来进行此添加,因此您可以简单地将其放在单独的文件中,并在顶部添加包main
。拥有一个main
包并将所有东西都放在它下面在一定程度上起作用。当事情变得越来越大时,您必须将其分解为独立的包。如果您当前的工作目录位于GOPATH中,那么您可以添加具有相同包名的新go文件main
如果当前工作目录不在GOPATH中,您仍然可以将它们放在多个go文件中,并且在运行程序时,应该使用
go run*.go
,而不仅仅是go run main.go
您还可以参考其他选项了解详细信息。如果您当前的工作目录位于GOPATH中,则您可以添加具有相同包名的新go文件
main
如果当前工作目录不在GOPATH中,您仍然可以将它们放在多个go文件中,并且在运行程序时,应该使用
go run*.go
,而不仅仅是go run main.go
您还可以参考其他选项了解详细信息。一个目录中可以有任意多个文件,只要在每个文件的顶部使用相同的包声明,这些文件就可以是同一个包的一部分。i、 e.在auth文件中将
package auth
更改为package main
。@mkopriva啊,我把这个信息搞错了,我认为包的名称必须是唯一的,这意味着package foo
只能有一个定义。现在可以在两个文件中正常工作。您可能会发现“如何编写Go代码”是一个信息源。您可以在一个目录中拥有任意数量的文件,并且只要在每个文件的顶部使用相同的包声明,它们就可以是同一个包的一部分。i、 e.在auth文件中将package auth
更改为package main
。@mkopriva啊,我把这个信息搞错了,我认为包的名称必须是唯一的,这意味着package foo
只能有一个定义。现在在两个文件中运行良好。您可能会发现“如何编写Go代码”是一个信息丰富的源代码。