您的位置:首页 > 编程语言 > Go语言

GO安装与运行环境以及编辑器、集成开发环境与其它工具

2019-09-05 15:47 288 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sinat_22631433/article/details/100559098

Go运行时

尽管GO编译器产生的时本地可执行代码,这些代码仍旧运行在GO的runtime当中。这个runtime类似Java和.NET语言所用到的虚拟机,它负责管理包括内存分配,垃圾回收、栈处理、goroutine、channel、slice、map和reflection

runtime主要由C编写,GO1.5开始自举,并且是每个Go包的最顶级包。

垃圾回收器Go拥有简单却高效的标记-清除回收器,思想来自IBM的可复用垃圾回收器,拥有垃圾回收机制的语言,并不代表可以避免内存分配带来的问题,分配和回收都会是消耗CPU资源的一种行为。

Go的可执行文件,都要比对应的源码文件大很多,因为GO的runtime嵌入到了每一个可执行文件中。当然在部署到数量巨大的集群时,较大的文件体积也是比较头疼的问题。但总的来说,Go的部署工作还是要比Java和Python轻松很多,因为Go不需要依赖任何其它文件,它只需要一个单独的静态文件,这样你就不会像其它语言一样在各种不同版本的依赖文件之间混淆

Go解释器

因为 Go 具有像动态语言那样快速编译的能力,自然而然地就有人会问 Go 语言能否在 REPL(read-eval-print loop)编程环境下实现。Sebastien Binet 已经使用这种环境实现了一个 Go 解释器,你可以在这个页面找到:https://github.com/sbinet/igo。

Go编辑器
Goland

Go调试器

1.使用gdb
2.达到基本调试目的的在合适的位置使用打印语句输出相关的变量
3.panic语句获取堆栈跟踪信息
4.关键字defer跟踪代码执行过程

Go格式化代码

gofmt –w program.go 格式化该源码文件然后覆盖原始文件内容
不加参数 -w 则只会打印格式化后的结果而不重写文件

gofmt -w *.go 会格式化并重写所有 Go 源文件

gofmt map1 会格式化并重写 map1 目录及其子目录下的所有 Go 源文件

gofmt 也可以通过在参数 -r 后面加入用双引号括起来的替换规则实现代码的简单重构,规则的格式:<原始内容> -> <替换内容>。https://golang.org/cmd/gofmt/更详细的gofmt的选项

生成代码文档

go doc的功能
1.从 Go 程序和包文件中提取顶级声明的首行注释以及每个对象的相关注释,并生成相关文档
2.作为一个提供在线文档浏览的 web 服务器

一般用法:
go doc package 获取包的文档注释
go doc package/subpackage 获取子包的文档注释
go doc package function 获取某个函数在某个包中的文档注释

注意:go doc只能获取在GO安装目录下的src中的注释内容

3.本地文档浏览web服务器
godoc -http=:6060
然后使用浏览器打开 http://localhost:6060 后,你就可以看到本地文档浏览服务器提供的页面

4.godoc 也可以用于生成非标准库的 Go 源码文件的文档注释

5.使用使用在线版的第三方包godoc
https://gowalker.org/

其它工具

go install 是安装 Go 包的工具,类似 Ruby 中的 rubygems。主要用于安装非标准库的包文件,将源代码编译成对象文件。

go fix 用于将你的 Go 代码从旧的发行版迁移到最新的发行版,它主要负责简单的、重复的、枯燥无味的修改工作,如果像 API 等复杂的函数修改,工具则会给出文件名和代码行数的提示以便让开发人员快速定位并升级代码。Go 开发团队一般也使用这个工具升级 Go 内置工具以及 谷歌内部项目的代码。go fix 之所以能够正常工作是因为 Go 在标准库就提供生成抽象语法树和通过抽象语法树对代码进行还原的功能。该工具会尝试更新当前目录下的所有 Go 源文件,并在完成代码更新后在控制台输出相关的文件名称。

go test 是一个轻量级的单元测试框架(第 13 章)。

与其它语言进行交互

与C交互
与C++交互

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐