Google在内部使用Go吗?
是。 Go在Google内部的生产中被广泛使用。 一个简单的例子是golang.org后台服务。 它只是运行在Google App Engine上的生产配置中的godoc文档服务器。
一个更具代表性的例子是Google的下载服务器dl.google.com,它提供了Chrome二进制文件和其他大型可安装程序,例如apt-get软件包。
Go远不是Google唯一使用的语言,但它是许多领域的关键语言,包括site reliability engineering (SRE)和大规模数据处理。
还有哪些公司使用Go?
Go的使用在全球范围内都在增长,特别是但又不仅是在云计算领域中。 Docker和Kubernetes2个主要的云基础设施项目就是用Go编写,还有更多。
不过,不仅仅是云。Go Wiki包括一个定期更新的页面,上面列出了许多在使用Go的公司。
Wiki也有一个页面,上面有关使用Go语言的公司和项目的成功案例的链接。
Go程序是否链接C / C ++程序?
可以在相同的地址空间中同时使用C和Go,但这并不是很自然的结合,可能需要特殊的接口软件。 并且,将C与Go代码链接会放弃Go提供的内存安全性和堆栈管理属性。 有时,绝对地有必要使用C的库来解决问题,但是这样做总是会引起纯Go代码所没有的风险因素,所以这样做要小心。
如果确实需要将C与Go一起使用,如何进行取决于Go编译器的实现。 Go团队支持三种Go编译器实现。 它们是gc-默认编译器,gccgo-使用GCC后端,以及不太成熟的gollvm-使用LLVM基础结构。
如果你确实需要将C与Go一起使用,如何处理取决于Go编译器的实现。 Go团队支持三种Go编译器实现。 它们分别是gc-默认编译器,gccgo-使用GCC后端,以及不太成熟的gollvm-使用LLVM基础结构。
Gc使用与C不同的调用协定和链接器,因此不能直接从C程序调用,反之亦然。 cgo程序提供了“外部函数接口”的机制,以允许从Go代码安全地调用C库。 SWIG将此功能扩展到了C ++库。
您还可以将cgo和SWIG与Gccgo和gollvm一起使用。 由于它们使用传统的API,因此也可以非常小心地将来自这些编译器的代码直接与GCC / LLVM编译的C或C ++程序链接。 但是,安全地进行此操作需要了解所有相关语言的调用协定,以及从Go调用C或C ++时要注意的堆栈限制。
Go支持哪些IDE?
Go项目不包括自定义IDE,但语言和库被设计的很容易分析源代码。 因此,大多数知名的编辑器和IDE都直接或通过插件很好的支持Go。
对Go良好的支持的知名IDE和编辑器列表包括Emacs,Vim,VSCode,Atom,Eclipse,Sublime,IntelliJ(通过名为Goland的自定义变体)等。选择你最喜欢的一个来编程Go。
Go是否支持Google的protocol buffers?
一个单独的开源项目提供了必要的编译器插件和库。 可从github.com/golang/prot…获得。
我能把Go主页翻译成另一种语言吗?
当然可以。 我们鼓励开发人员用他们自己的语言制作Go语言网站。 但是,如果您选择将Google logo或品牌添加到您的网站(它不会出现在golang.org上),则你1还需要遵守www.google.com/permissions…的指导准则。