Go 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Go 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 BSD
开发语言 Google Go 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开发厂商 Google
地区 不详
提 交 者 绿悠悠
适用人群 未知
收录时间 2009-11-11

软件简介

Go 是 Google 开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。

Go 语言是基于 Inferno 操作系统所开发的。Go 语言于2009年11月正式宣布推出,成为开放源代码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后追加 Windows 系统下的实现。

Go 语言的语法接近 C 语言,但是对于变量的声明是不同的,其他语法不同之处是 For 循环和 if 判断式没有括号围绕。Go 语言支持垃圾回收功能。Go 语言的并行模型是以东尼·霍尔的 CSP 为基础,采取类似模型的其他语言包括 occam 和 Limbo,但它也具有 Pi 运算的特征,比如通道传输。

与 C++相比,Go 语言并不包括如异常处理、继承、泛型、断言、虚函数等功能,但增加了 slice 型、并发、管道、垃圾回收、接口(interface)等特性的语言级支持。当然,Google 对于泛型的态度还是很开放的,但在该语言的常见问题列表中,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。不同于 Java,Go 语言内嵌了关联数组(也称为哈希表(hashes)或字典(dictionaries)),就像字符串类型一样。

简单的 Hello World 程序:

package main
import "fmt"
func main() {
  fmt.Printf("Hello, 世界\n")
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (58)

加载中
#Go# 开发一般用什么工具?
2018/07/03 22:36
回复
举报
goland
2019/07/04 20:03
回复
举报
notepad
2019/09/27 11:33
回复
举报
本来很好的C风格语法延续下来类似于Java/JavaScript作些扩充和调整不就完了,#Go##Rust#非得弄得面目全非增加学习难度,真是作死!#Swift#在语法的易学习程度上吊打它们 ,既能解释又能编译执行的特性也非常适合快速开发,现在开源了,苹果那套专有的UI框架不需要学,单做系统级开发应该很不错!
2018/05/05 13:55
回复
举报
package main import "fmt" func main() { fmt.Printf("中毒了") }
2018/05/02 14:22
回复
举报
2018/04/28 16:20
回复
举报
打分: 力荐
2018/04/28 08:40
回复
举报
2018/04/02 11:34
回复
举报
2018/03/09 13:44
回复
举报
打分: 较差
支持异常处理吧?!
2018/01/23 09:49
回复
举报
更多评论
发表于行业趋势专区
11/11 08:16

Go 开源 11 周年

2009年11月10日,Go 作为开源项目正式宣布推出。到今天,Go 已开源 11 周年,其官方博客也更新了一篇纪念 11 周年的文章。 简单回顾 Go 的历史: 2007年9月 Rob Pike, Robert Griesemer 和 Ken Thompson 开始设计 Go 2008年3月 Go 的首个规范产生 2009年11月10日,Go 正式宣布推出,并成为开源项目 2012年3月,首个正式版...

63
7
发表了资讯
09/10 14:12

Go 1.15.2 和 1.14.9 发布了

Go 语言刚刚发布了两个小版本升级,分别是 1.15.2 和 1.14.9。 go1.15.2 (2020/09/09) 主要是修复编译器、运行时、文档相关的 bug。 详细的改进内容请看发行说明: https://golang.org/doc/devel/release.html#go1.15.minor 下载地址: https://golang.org/dl/ 编译方法: "git checkout go1.15.2" and build as usual....

3
0
发表了资讯
08/12 08:00

Go 1.15 发布

Go 1.15 发布了,该版本在 1.14 的基础上继续改进工具链、运行时和库,同时该版本继续保持对 Go 1 版本的兼容承诺。 Go 1.15 包含了对链接器的实际提升,提升了在高内核系统下的小对象内存分配,废弃了 X.509 CommonName. GOPROXY 限制已经支持在返回错误时跳过代理的做法,同时增加了一个全新的 嵌入式 tzdata 包。 Go...

41
3
发表了资讯
07/16 07:30

Go 泛型的括号选择:[ ] or ( )?

Go 语言设计者 Robert Griesemer 和 Ian Lance Taylor 近日在 Golang 官方论坛发帖讨论关于泛型及其括号使用的问题。 他们提到很多人表达了对泛型语法的担忧,特别是在类型参数声明和函数实例以及泛型的括号选择方面。 常见的计算机键盘提供了四对单字符对称括号,分别是小括号 ( )、方括号 [ ]、花括号 { } 以及尖括号 ...

73
7
发表了资讯
07/16 07:25

Go 1.14.5 和 1.13.13 发布

Go 发布了 1.14.5 和 1.13.13 版本,以解决两个最近报告的安全问题,建议所有用户更新到这两个版本之一。 主要解决的问题包括: 某些 net/http 服务器(包括 ReverseProxy)中的数据争用 处理程序同时读取请求主体并写入响应的服务器可能会遇到数据争用和崩溃。httputil.ReverseProxy 处理程序就受到了影响。此问题是 CV...

11
2
发表了资讯
06/18 07:56

Go 泛型草案更新,明年8月发布的 Go 1.17 将引入

Go 团队近日在博客介绍了 Go 泛型的最新进展。 Go 团队表示他们一直在完善泛型的设计草案,并为此编写了一个类型检查器——可按照设计草案中的说明,解析使用泛型的 Go 代码并报告任何类型的错误。为了收集社区的反馈,他们还编写了示例代码并在草案中提供。 根据收集的反馈和了解的信息,Go 团队发布了更新后的泛型设计...

45
5
发表了资讯
06/09 08:22

Chromium 与 Go 开发者提议替换“blacklist”与“slave”等词

最近美国引发的“Black Lives Matter”运动使得各种抗议声音不断,技术圈也有支持这一运动的行动。 从源码中的一个新 commit 来看,Chromium 有开发者提议移除“blacklist(黑名单)”这样的字眼。 这一个 commit 试图安全地替换出现单词“blacklist”的每个可能的实例,而不破坏浏览器的任何部分,最终目的是将“compo...

63
7
发表了资讯
05/10 09:03

HackerEarth 2020 开发者调查:Go 最抢手、机器学习人才匮乏、人人都想少开会、远程面试最好

HackerEarth 发布了 2020 年开发者调查报告,有来自 76 个国家/地区的 16,000 多位开发者参与其中。 调查显示,Go 是今年最受欢迎的编程语言。无论是学生(29%)还是专业人士(32%),都将 Go 语言列在“最想学习的语言”第一位。受访的学生最想学习的语言还有 JavaScript 和 Kotlin,而专业人士将 Python 和 Kotlin 作为...

5
11
发表了资讯
04/22 08:31

Go 语言 2019 调查报告发布

Go 官方博客昨日公布了 2019 年 Go 语言调查报告。本次调查收到的回复达到 10,975 份,约为去年的两倍。 这些受访者的反馈意见将被选取用于改进 Go 语言的发展。 以下是 2019 年度的调查报告摘要: 此调查中,受访者的受众特征与 Stack Overflow 的受访者相似,因此这些结果在某种程度上可以代表更广泛的 Go 开发人员。 ...

22
10
发表了资讯
02/26 08:01

Go 1.14 发布,Go 模块管理已经成熟

今天,Go团队非常高兴地宣布Go 1.14的发布。您可以从下载页面获取它。 一些亮点包括: go命令中的模块支持已为生产做好了准备。我们鼓励所有用户迁移到go模块进行依赖性管理。 嵌入具有重叠方法集的接口 改进的延迟性能 Goroutine是异步抢占式调度的 页面分配器效率更高 内部计时器效率更高 有关更改的完整列表以及有关上...

18
7
发表了资讯
02/25 08:32

Golang 之禅

在本月初的 GopherCon 上,知名 Go 语言贡献者与布道师 Dave Cheney 发表了名为《The Zen of Go》的演讲,之后他整理了演讲内容在博客中分享,由于内容过长,他又写了一个简洁版本: 完整版:https://dave.cheney.net/2020/02/23/the-zen-of-go 简洁版:https://the-zen-of-go.netlify.com 这里简单翻译一下简洁版本的内...

37
70
发表了资讯
02/08 08:43

Go 1.15 将为 Vet 引入新的检查内容

虽然 Go 1.14 尚未发布(计划于 2 月发布),不过 Robert Griesemer(Go 语言核心维护者兼创始人之一) 已在博客公布了 Go 1.15 开发提案。 Robert 提到,在审查了所有可行的提案后,由于团队各成员一致认为不希望在没有长期计划的情况下逐渐增加新功能,因此经过考量后,决定不在 Go 1.15 加入重大变更,取而代之的是为...

18
9
发表了资讯
2019/10/15 08:28

证明谷歌 Go 魅力的 10 个开源项目

谷歌的 Go 编程语言问世已有 10 年,无疑已扬名立万。由于丰富的库和抽象机制简化了开发并发分布式(即云)应用程序的工作,轻巧且易于编译的 Go 备受关注。 但是真正衡量任何一种编程语言成功的标准是开发人员用它创建的项目。 Go 已证明它是快速开发网络服务、软件基础结构项目以及各种功能强大的紧凑工具的首选。 本文...

17
102
发表了资讯
2019/10/13 08:01

Uber 开放公司内部《Go 语言风格指南》

Uber 近日开放了其公司内部使用的《Go 语言风格指南》。 Uber 介绍,“风格”也就是支配我们代码的惯例,该指南出现在 Uber 公司内部是为了使代码库易于管理,同时让工程师有效地使用 Go 语言特性。 文档中详细描述了在 Uber 编写 Go 代码的注意事项,具体列出来的是“Dos and Don'ts of writing Go code at Uber”,也就...

12
77
发表了资讯
2019/09/27 07:20

Go 1.13.1 和 Go 1.12.10 发布,小版本更新

Go 1.13.1 和 Go 1.12.10 发布了,修复了一个安全问题,如下: net/http (通过 net/textproto)接受无效的 HTTP/1.1 报头并将其标准化,在冒号前会出现空格,产生 RFC 7230 错误。 如果一个 Go 服务器在一个不常见的反向代理后面使用,该代理接受并转发这些无效的报头,却不对这些无效报头进行规范化,反向代理和服务器就...

6
1
发表了资讯
2019/09/04 10:06

Go 1.13 发布

Go 1.13 发布了,该版本值得关注的改进包括: go 命令可直接下载和认证模块,详情请看 using the Go module mirror and Go checksum database by default 数字文法的改进 错误封装改进 默认启用 TLS 1.3 提升对模块的支持 详细改进说明请看 https://golang.org/doc/go1.13...

41
9
发表了资讯
2019/08/17 07:35

Go 1.12.9 发布,小版本更新

Go 昨天发布了一个小版本更新 1.12.9,此版本的更新内容主要包括对链接器、os 以及 math/big 包的修复。 具体如下: cmd/link: stack depth check too shallow [1.12 backport] os.RemoveAll: openFdAt function without O_CLOEXEC and cause fd escape to child process [1.12 backport] cmd/link: missing section for...

15
5
发表了资讯
2019/08/08 14:17

Go2:实验,简化,出货!

介绍 我们都正在一起走向Go 2的路上,但没人知道确切位置和道路。这篇文章讨论了我们如何实际找到并遵循Go2的道路。下面是这个过程的样子。 我们现在尝试使用Go,以便更好地理解它,学习哪些有效,哪些无效。然后我们尝试可能的变化,更好地理解它们,再次学习哪些有效,哪些无效。根据我们从这些实验中学到的东西,我们...

12
35
发表了资讯
2019/08/01 09:09

Go 语言为什么需要泛型?

Go:为何带来泛型 介绍 [这是在Gophercon 2019上发表的演讲版本。视频链接可供使用。] 这篇文章是关于向Go添加泛型的意义,以及为什么我认为我们应该这样做。我还将介绍为Go添加泛型的设计可能的改变。 Go于2009年11月10日发布。不到24小时后,我们看到了关于泛型的第一条评论。(该评论还提到了我们在2010年初以panic和...

46
25
发表了资讯
2019/07/20 08:01

Go 语言团队否决关于"try"语句的提案

Go 语言作者之一 Robert Griesemer 前几天代表 Go 语言开发团队的提案审查委员会公布了关于否决一项提案的决定。Robert 在「内置的 Go 错误检查函数,"try"」提案下面的回复中发布了这个公告,并表示基于社区压倒性的反应和由此引起的广泛讨论,团队决定提前拒绝此项提案。 关于 Go 2 的错误处理问题,Robert 表示团队去...

54
12
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2013/05/23 16:40

翻转参数UIImageOrientation

typedef enum { UIImageOrientationUp, // default orientation 默认方向 UIImageOrientationDown, // 180 deg rotation 旋转180度 UIImageOrientationLeft, // 90 deg CCW 逆时针旋转90度 UIImageOrientationRight, // 90 deg CW 顺时针旋转90度 UIImageOrientationUpMirrored, // as above but image mirrored along o...

0
0
发表了博客
2013/05/27 17:17

一些学习ios开发有用的网址

1,CocoaChina:http://www.cocoachina.com/ 2,Code4App:http://code4app.com/ 3,梦维:http://www.dreamingwish.com/ 4,open开源文档:http://www.open-open.com/doc/ 5,懒人ios:http://www.lanrenios.com/ 6,ios—csdn:http://www.csdn.net/article/tag/ios 7,ios笔试:http://www.cnblogs.com/jiangshiyong...

3
5
发表了博客
2013/05/29 10:50

关于sandbox文件管理

默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件 Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录 Library:存储程序的默认设置或其它状态信息; Library/Caches:存放缓存文件,i...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于程序人生专区
10/28 10:06

Go 语言政府国产化项目

有使用GO语言做过政府国产化项目的求指点一下。使用的是什么数据库、中间件,以及服务器的操作系统?谢谢!

7
0
发表了问答
08/07 16:01

golang byte切片

var xxx=[ ]byte{ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d } golang 好多项目里边 byte切片定义为甚都是这种形式的 写的那么老长 有什么特殊的含义吗

2
0
发表了问答
2013/08/11 02:51

问下有人见过合并MP4的C语言或者Go语言的源代码吗?

问一下有人见过go语言的关于MP4文件合并的源代码么,或者支持MP4拆分、合并的库更好 因为go中嵌入c很容易,所以c语言的源代码也可以

3
0
08/20 07:06

GO语言中的协程与Python中的协程的区别?

2020-08-20:GO语言中的协程与Python中的协程的区别?

2
0
发表了问答
08/03 23:01

go如何用变量设定数组长度

go如何用变量设定数组长度

7
0
发表了问答
07/23 12:04

go字符串转换为数字报错:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

我尝试对从文件中读取出的字符串进行类型转换,但是遇到了一个难以解决的问题: 对于标记红框的部分,表面上看起来这两个数字很正常,但是实际上对于第一个数字18408000517,如果我使用 strconv.Atoi(value) 就会爆出错误: strconv.Atoi: parsing "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\...

2
0
发表于运维专区
06/26 12:29

jenkins shell中如何实现golang git私有库拉取配置?

如题,在配置jenkins的时候,遇到了一些问题。shell中go get私有仓库时,总提示unknown revision错误。 shell前半部分代码如下: 该仓库的公钥配置没有问题,在jenkins的源码管理中可以正常拉取。本地也正常。但是跑shell里面配置好就不行了。 猜测可能是shell绑定配置不太对,但是网上找了半天资料,没有解决办法。 最后...

3
4
发表了问答
06/16 19:05

斗鱼开源首秀——基于 Go 的微服务框架 Jupiter

6 月 1 日,斗鱼将基于 Go 语言的微服务框架 Jupiter 开源。作为国内知名的互联网直播公司,这也是斗鱼首次以公司的名义正式推出开源项目。 近年来,得益于日渐增长的高并发业务需求,微服务架构开始在国内逐渐普及。同时,专为高并发而生的 Go 语言及其相关生态在国内的发展也突飞猛进。目前,市面上主流的微服务架构包...

20
57
发表于数据库专区
2019/06/25 11:19

go-sqlite3 操作加密的sqlite3数据库不加密

代码如下:建立的数据库并不加密,求解。 // +build sqlite_userauth package main import (   "database/sql"   "fmt"   "strconv"   "time"   _ "github.com/mattn/go-sqlite3" ) func main() {   now_time := time.Now()   //db, err := sql.Open("sqlite3", "./foo1.db")   hs := now_time.Format("1504...

1
0
发表了问答
05/28 18:21

Go 版本入 Dubbo 生态一周年:已和 Spring Cloud、gRPC 互通

去年5月,阿里开源的高性能 RPC 框架 Dubbo 从 ASF 毕业并晋升顶级项目,同时,还宣布 Go 语言版本的 Dubbo-go 正式加入 Dubbo 官方生态。 经过一年的发展, Dubbo-go 在技术和社区运营方面都已经有了不错的成绩。Dubbo-go 是 Dubbo 的完整 Go 语言实现,在功能实现和技术路径上与 Dubbo 有不同程度的对标,项目团队预计...

11
27
发表了问答
2013/12/19 22:24

golang VS php 性能对比

原文 http://www.isno.cn/2013/12/golang-vs-php/ 在工作的项目中,我的主要开发语言是php,因需求或者为弥补php的缺陷,需要为php做各种各样的扩展,比如php本身不支持线程,没有队列,进程也不无法用于生产环境, 可以说php没有任何“程”,因而网上有较多的文章阐述如何实现php队列,多线程等等,在我的理解,与其用p...

35
14
发表了问答
03/31 11:30

websocket单机多client

以上红线代码在单个robot的时候可以正常运行,但是多个的时候就会报错,有大佬可以看看吗 报错信息: panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0xc8 pc=0x128c3a6]...

7
0
发表了问答
03/10 21:46

关于osc中的一篇文章提到的go的缺点,谁能解释一下?

总结一下,Go 在 Fuchsia 生态中可能会有些失落,值得注意的是文档中关于其缺点的介绍: 使用垃圾回收来管理内存,这比其它用于管理内存的技术占用更多的资源 运行时环境庞大 Fuchsia Platform Source Tree 在使用 Go 方面具有负面的实施经验。Fuchsia 项目在 Go 中构建的系统组件消耗的内存和内核资源相比使用 C++ 或 ...

1
1
发表了问答
03/14 15:34

为什么我写的文件复制练习对多媒体文件复制不完整?希望各位大牛指出问题

具体问题如下: 通过下面的对比图片可以看出,我的程序并没有将文件完整的复制,而cp命令可以完整的进行复制,排除了硬件问题,但是我反复看了我的代码又找不出问题所在。请各位大牛帮帮忙。 用来测试的panda.mp4文件链接:https://pan.baidu.com/s/1GfIDLuPlekGoR7gkR3v-Ng 提取码:gzhl 代码如下:最后n值输出的是0,按...

1
0
发表了问答
03/10 17:02

Go语言通过ssh传文件并执行报错Text file busy

package main import (   "fmt"   "log"   "os"   "path"   "time"   "github.com/pkg/sftp"   "golang.org/x/crypto/ssh" ) func sshconnect(user, password, host string, port int) (*ssh.Session, error) {   var (     auth []ssh.AuthMethod     addr string     clientConfig *ssh.ClientC...

1
0
发表了问答
03/07 08:10

为什么golang自带的官方库中sql.go中lastcols没有一个方法返回?

// lastcols is only used in Scan, Next, and NextResultSet which are expected   // not to be called concurrently.   lastcols []driver.Value 自带的sql.go中的这个 结构体中的字段 lastcols 为什么不写法方法返回呢? lastcols 存储的就是sql执行的每行结果集,为什么没有一个方法返回lastcols这个字段值呢? 感谢...

1
0
发表了问答
02/25 15:11

前端如何调用shell脚本并实现交互?

项目为golang语言,现在,想要通过web界面调用后台shell脚本来实现项目的部署升级,但是部署脚本有一些交互,如选择备份模式,输入备份路径等等. 那通过web页面调用的话能实现这种方式么?就是调用shell并提供问答交互?不胜感激

1
0
发表了问答
02/13 08:03

浏览器后退直接跳过2个

遇到这种情况window.history里面有3条浏览记录,可我在第三个网站按后退直接跳到了第一个,用window.history.go(-1)倒是正常的,而且这个问题只在chrome中有,Firefox是正常的,这是为什么?

1
0
发表了问答
2016/08/23 10:51

用新技术的公司基本上代表技术落后的公司 -- 两个凡是

简单可靠的技术才是有意义的 运用新技术, 代表对技术一无所知

25
0
发表了问答
2019/09/09 14:05

go语言 http读取文件不完整

我要在服务器上下载个txt文件,下面这段代码只能读取3726个字节,但是文件有9k,我用下面的代码试着读取网上的资源链接发现没有这个问题。我又用postmain模拟读取服务器上的txt request , _ := http. NewRequest ( "GET" , addr, nil ) request.Header. Set ( "Connection" , "keep-alive" ) client := http.DefaultCli...

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
58 评论
460 收藏
分享
返回顶部
顶部