Differences between revisions 2 and 3
Revision 2 as of 2018-09-10 16:21:38
Size: 3480
Editor: twotwo
Comment: update
Revision 3 as of 2020-01-04 23:43:16
Size: 3945
Editor: twotwo
Comment: 增加学习笔记
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。 罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于 Inferno 操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在 Linux  Mac OS X 平台上进行了实现,后来追加了 Windows 系统下的实现。
Line 38: Line 38:
[[https://colobu.com/2015/09/07/How-to-Write-Go-Code/|如何编写Go代码|target="_blank"]] [[http://mp.weixin.qq.com/mp/homepage?__biz=MzAxMTA4Njc0OQ==&hid=10|Go 基础学习|target="_blank"]]

IDE [[VSCode_Go|Go in Visual Studio Code]]

技术新闻
 * [[https://colobu.com/categories/Go/||target="_blank"]]
 * [[https://learnku.com/go||target="_blank"]]
Line 43: Line 49:
 * [[https://github.com/golang/go/wiki/SuccessStories||target="_blank"]] move to Go. [[https://medium.com/appsflyer/my-journey-from-python-to-go-3859783c6b3c|My journey from Python to Go|target="_blank"]]
Line 61: Line 68:
 * [[https://github.com/avelino/awesome-go||target="_blank"]] Awsome-Go

Back to Computer_Languages

See Also CJava

Go Programming Language

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于 Inferno 操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后来追加了 Windows 系统下的实现。

目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。

1. 描述

Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,[2],但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。

与C++相比,Go并不包括如异常处理、继承、泛型、断言、虚函数等功能,但增加了 Slice 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Google 目前仍正在讨论是否应该支持泛型,其态度还是很开放的,但在该语言的常见问题列表中,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。

不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。

2. 学习

http://www.runoob.com/go/go-tutorial.html

A Tour of Go $ go get golang.org/x/tour/gotour

2.1. Installation

https://golang.org/doc/install

brew install go # brew upgrade go

https://github.com/golang/go/wiki/SettingGOPATH

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

2.2. Geting Started

Go 基础学习

IDE Go in Visual Studio Code

技术新闻

2.3. Projects Written in Go

3. Tools

https://golang.org/cmd/go/

Go includes the same sort of debugging, testing, and code-vetting tools as many language distributions. The Go distribution includes, among other tools,

  • go build, which builds Go binaries using only information in the source files themselves, no separate makefiles

  • go test, for unit testing and microbenchmarks

  • go fmt, for formatting code

  • go get, for retrieving and installing remote packages //alias go='http_proxy=127.0.0.1:8080 go'

  • go vet, a static analyzer looking for potential errors in code

  • go run, a shortcut for building and executing code

  • godoc, for displaying documentation or serving it via HTTP

  • gorename, for renaming variables, functions, and so on in a type-safe way

  • go generate, a standard way to invoke code generators

4. Reference

MainWiki: Golang (last edited 2020-01-04 23:43:16 by twotwo)