SDB:Go

跳转到:导航搜索

Go

关于 Go

Go 是一种编程语言和环境(由 Robert GriesemerRob PikeKen Thompson 设计),它使构建简单、可靠和高效的软件变得容易。

Go 是一种表达力强、并发、垃圾回收的通用/系统编程语言,具有类型安全和内存安全。它具有指针但没有指针运算。Go 具有快速构建、简洁的语法、垃圾回收、适用于任何类型的的方法以及运行时反射。它感觉像一种动态语言,但具有静态语言的速度和安全性。

入门 / 安装

注意:Leap 和 SLES 仅提供略旧版本的 Go。如果您打算编译需要较新 Go 编译器的 Go 软件,则需要在这些发行版上添加 devel:languages:go 仓库。Tumbleweed 通常在 Factory 仓库中提供最新版本。

要安装 Go 编译器,请执行

   zypper in go go-doc

从 openSUSE 仓库安装的 Go 库和包安装到 $GOROOT 和系统 bindir。您使用“go”工具安装的任何额外包或二进制文件都将安装到 $GOPATH 和 $GOBIN(如果已设置,请参阅:go help gopath 和 https://golang.ac.cn/doc/code.html#GOPATH)。

请注意,$GOBIN 目录可能默认不在用户的 $PATH 环境变量中。要启动安装在系统包管理器之外的 Go 二进制文件,即直接使用“go”工具安装的二进制文件,请通过指定完整路径启动它们,或者将 $GOBIN 目录添加到您的 $PATH 变量。本地安装的默认位置是 /home/$USER/go/bin,可以通过 ~/.profile 文件中的条目添加到 $PATH

   PATH=$PATH:/home/$USER/go/bin

安装“go”包后,检查所有内容是否设置好的一个好方法是安装并运行 Go Tour。如果您有一个可行的 Go 环境,则以下两个命令将不会出错。

   go get golang.org/x/tour
   tour

当您拥有一个正常工作的环境时,以下文档对于首次使用 Go 的黑客来说是一个很好的资源

   https://golang.ac.cn/doc/install#next

对于有经验的 C、C++ 和 Java 黑客,我推荐 Go FAQ。

   https://golang.ac.cn/doc/go_faq.html

支持

项目主页

   https://golang.ac.cn

Go 语言社区支持

   Mailing List: http://groups.google.com/group/golang-nuts
   IRC: #go-nuts on Libera.Chat

文档

go-doc 包支持使用 Godoc 参考和 API 文档服务器。您可以将文档服务器作为服务运行(systemctl start godoc.service,默认端口 6060),也可以手动启动它,运行 godoc --help 以获取参数。systemd 服务以启用搜索索引的方式运行,因此如果您在 RAM 有限的系统上,可能希望使用 godoc 工具以命令行模式运行或手动运行它。

抱歉,目前还没有 man 页面(正在开发一种将现有工具链文档转换为 groff 格式的工具),但工具链、命令和 api 参考、语言规范等都可通过 godoc 工具或直接通过 https://golang.ac.cn 获取。

go-vim 包具有一个插件 :Godoc,它与 godoc 工具集成。


工具链

您不会在 PATH 中找到大部分工具链,Go 程序和源代码由“go”工具管理,请参阅“godoc go”或“go help”以获取详细信息。

我们使用默认的 Go 编译器/链接器/打包工具,目前没有 gccgo 选项。如果您希望这样做,可以直接调用这些工具,请参阅“go tool”、“go help tool”。


软件包

我们在 devel:languages:go 仓库中有许多流行/有用的包,我建议安装相关的 doc 包以获取库,因为它将与本地 godoc API 服务器集成。除了这些,您还可以浏览社区仪表板以获取其他包

   http://godashboard.appspot.com/project

如果您发现有用的东西但不在 devel:languages:go 中,请告诉我们,我们会为您打包它,或者您可以使用 Go 打包指南和 wiki 中的 .spec 脚本自行打包,欢迎提交 SR。

  https://en.opensuse.net.cn/openSUSE:Packaging_Go

编辑器

有语法高亮和编辑器插件:包是 - go-emacs、go-kate(比当前的 kate part 语法文件更新)、go-vim。

在 devel:languages:go 仓库中有一个带有 go 支持的最新 ctags 包。“gocode”包来自同一个仓库,为 vim 和 emacs 提供自动完成支持。

请注意,Go 采用通用的代码风格,使用“go fmt”或“gofmt”工具来帮助您实现此目的。

团队成员