【03】helloworld 叩开 Go 编程的大门

murphyzhao · · 53621 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# helloworld 叩开 Go 编程的大门 没有规矩不成方圆,在编程开始前,我们非常有必要了解下 Go 语言代码组织的基本规则和必要的要求。否则我们就是**外行**了。 为此,我们从编程入门第一个程序 helloworld 来看 Go 代码的组织结构。 ## Go 代码的组织结构 Go 工具规定 Go 代码必须放到 **工作空间** 内,并且 Go 工具规定了工作空间的目录结构。 ### 什么是工作空间 简单来说,工作空间就是磁盘上的一个文件夹(一个目录)。类似于 C++ 中的 workspace。即,工作空间就是一个项目(工程)的根目录。 ### 工作空间的目录结构 - src:包含 Go 源文件 - bin:包含可执行文件(二进制文件) 其中,src 中的源文件被组织成**包**,src 中的每一个目录都对应一个包,也就是说 src 目录中都是一个个文件夹,每一个文件夹都是一个 Go 包(关于 Go 包请继续阅读)。 Go 工具用于将构建 Go 源文件,并将生成的二进制文件安装到 bin 目录。 ### 关于 Go 包 工作空间中 src 目录下的所有文件夹都称为不同的 Go 包,源代码存放在对应的 Go 包中。 为了方便,也为了避免重复造轮子,Go 官方提供了一些*包*(如 fmt),他们是 Go 标准库的一部分。 既然官方提供了 Go 包,并命名了名字(如 fmt),那么我们在写自己的包的时候,是不是就不能使用 *fmt* 这个名字了? 当然,Go 工具没有那么蠢。Go 工具约定,对于非标准库中的 Go 包,必须给*包*选择一个**基本路径**。 Go 工具建议使用代码托管工具中的用户名(如 github.com/user)作为*基本路径*。因为代码托管工具中的用户名是唯一的,这样就解决了基本路径可能冲突的问题,不失为一个很好的方式,简单明了。 ## 第一个程序 helloworld ### 创建工作空间并设置 GOPATH 环境变量 前面有说到,GOPATH 环境变量指定了你的工作空间位置,是开发中唯一需要配置的环境变量。 ``` $ mkdir /home/ubuntu/work/go_work $ export GOPATH=/home/ubuntu/work/go_work ``` Go 工具为了方便执行生成的二进制可执行文件,约定将工作空间下的 bin 目录添加到 PATH 环境变量中,如下: ``` $ export PATH=$PATH:$GOPATH/bin ``` 至此,工作空间已经配置完成。 ### 创建 hello 包 ``` $ mkdir $GOPATH/src/github.com/user/hello ``` 这里的 user 需要替换为你自己的 github 用户名。 ### 添加 helloworld 源码 在 `$GOPATH/src/github.com/user/hello` 目录下创建 `hello.go` 文件,并在文件内添加下面的代码: ``` package main import "fmt" func main() { fmt.Printf("Hello, world.\n") } ``` **代码说明:** - 第一行 `package main` 使用 `package` 关键字指定包的名字。Go 工具的第一个 Go 语句必须是 `package 包名`。但是,可执行文件必须使用 `package main`,相当于指定程序运行的入口。 更多详细的描述,请参考 [包名](https://golang.org/doc/code.html#PackageNames) 章节。 - 第二行 `import "fmt"` 使用 `import` 关键字导入一个外部包。fmt 包用于格式化输出。 - 第三、四、五行创建了一个 main 函数,花括号必须安装这个格式书写 第四行使用 fmt 包中的 Printf 函数输出字符串 “Hello, world.”。 ### 构建 helloworld 源码 ``` $ go install github.com/user/hello ``` 成功运行上述命令的前提是正确配置了 GOPATH 环境变量。 上述命令 Go 工具默认到 GOPATH 工作空间中查找 src 下的 `github.com/user/hello` 包中的源码。**注意替换 user 为你自己的用户名**。 当然,你也可以在源码的根目录下执行,如下: ``` $ cd $GOPATH/src/github.com/user/hello $ go install ``` 执行完上述命令后,会生成一个可执行二进制文件,默认命名为 hello。执行完 `go install` 命令后,Go 工具会将 hello 二进制文件安装到工作空间下的 bin 目录中(即 $GOPATH/bin/hello)。 ### 执行二进制程序 上述步骤成功后会在 `$GOPATH/bin` 目录下生成 hello 文件,这是一个可执行二进制文件。运行示例如下: ``` $ $GOPATH/bin/hello Hello, world. ``` 至此,我们已经成功编写、构建并执行了 hello 程序,成功输出了 hello world。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

53621 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传