jef*_*r13 11 module packages projects-and-solutions compilation go
不是来自C /编译语言背景,我发现很难掌握使用Go的包机制来创建模块化代码.
在Python中,要导入模块并访问它的函数等等,这是一个简单的例子
import foo
Run Code Online (Sandbox Code Playgroud)
其中foo.py是要在同一目录中导入的模块的名称.否则,您可以__init__.py在子文件夹中添加一个空格并通过它访问模块
from subfolder import foo
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过模块名称简单地引用它们来访问函数,例如y = foo.bar(y).这使得将逻辑代码片段彼此分离变得容易.
但是,在Go中,您可以在源文件本身中指定包名称,例如
package foo
Run Code Online (Sandbox Code Playgroud)
在'foo'模块的顶部,然后您可以通过该模块导入
import (
"foo"
)
Run Code Online (Sandbox Code Playgroud)
然后通过它来引用它,即y := foo.Bar(x).但是我无法理解的是这在实践中是如何运作的.golang.org上的相关文档似乎很简洁,并且针对使用makefile和编译器的更多(任何)经验的人.
有人可以清楚地解释你是如何在Go中模块化你的代码,正确的项目结构,以及编译过程如何工作?
ama*_*ttn 21
Wiki答案,请随时添加/编辑.
同一包中的多个文件
package <name>指令开头,这意味着它们被Go视为一大组代码.您可以透明地调用函数a.go的b.go.这主要是为了代码组织的利益. blog.go(主文件)entry.go,和server.go.由你决定.虽然您可以在一个大文件中编写博客包,但这往往会影响可读性.多个包
$GOROOT.您编写的任何程序都可以import "<name>"随后调用<name>.someFunction()blog.go和news.go两个都会import "server".我目前使用gomake与Makefiles.Go安装附带了一些很棒的包含文件,可以简化包或命令的创建.这并不困难,最好的方法就是从开源项目中查看示例makefile并阅读"如何编写Go代码".
| 归档时间: |
|
| 查看次数: |
9553 次 |
| 最近记录: |