快速指南,谷歌转到编程

需要一个简洁,简单,安全,快速的编译与美妙的并发特性的语言?与谷歌GO GO

快速向导一起去编程

快速指南,谷歌转到编程

在GO编程语言是从谷歌的开源编程语言,它可以很容易地构建简单,可靠,高效的软件。即开始与托尼·霍尔的它的编程语言谱系的一部分通信顺序进程并且包括奥卡姆,二郎,Newsqueak,和中间状态。在接下来的14张幻灯片中,我们将展示一些语言的差异化特性,包括它的重量极轻的并发。目前该项目已超过500个贡献者,由罗布·派克,在谷歌著名工程师,谁在贝尔实验室工作了作为Unix的团队的一员,共同创建计划9和Inferno领导。

片

Go语言扩展了片阵列的想法。切片指向值的阵列,并且包括长度。[] T ...是与T类型的元素在所描绘的锻炼的切片中,我们使用的无符号字节切片的切片,以保持我们生成图像的像素。同包主,程序开始运行。该进口语句是C和C ++的一个扩展版本包括声明;在这里,我们所得到的PIC从Mercurial库文件。该:=语法声明并初始化的变量,并且编译器推断一个类型时,它可以。也,使用于创建片和一些其他类型。一个for..range环是C#的等效的for..in循环。

地图

地图

旅途中地图声明键映射到值。与,创建地图使,不。在上面的例子中,我们是映射字符串键为整数值。在这里我们展示了插入,更新,删除和测试地图元素。

此图片的程序打印:

值:42
值:48:0的值
值:0
当下?假

结构和方法

结构和方法

Go语言缺少类,但有一个结构,这是命名元素,称为字段,每一个名称和类型的序列。一个方法是具有接收器的功能。一种方法声明结合的标识符(方法名称)的方法和与接收器的基本类型的方法相关联。在这个例子中,我们声明顶点结构包含两个浮点领域,Xÿ和方法阿布斯。与大写字母开头的是公共领域;与小写字母开头的字段是私有的。字段和方法是通过点符号寻址;*表示指针,如C.这个程序打印

接口

接口

接口类型是由一组的方法来定义。接口类型的值可以保存任何值,实现这些方法。在这个例子中,我们定义了一个接口Abser和可变一个类型Abser。请注意,在线路17和18的工作任务,但在第22行分配甚至不进行编译。该阿布斯的方法顶点,这是我们在上一张幻灯片看到,有一个指针顶点键入其接收器,所以*顶点器物Abser,但顶点才不是。

开关

开关

开关在Go语句是类似开关在其他声明类似C语言中,除了案件报表可除了简单的值类型或表达式,除非他们有结束的情况下自动中断下通声明。这些案件中,他们定义的顺序进行评估。

够程

够程

够程是,一个粗略的估计,极其轻量级线程,在东尼·霍尔的通信顺序进程的精神。上述呼叫的样品中16线异步功能,而第17个调用同步功能。够程,渠道和选择报表形成Go的高度可扩展的并发性,语言的最强卖点之一的核心。语言也有传统的同步对象,但他们很少需要。程序到左输出:

你好
世界
你好
世界
你好
世界
你好
世界
你好

通道

通道

在Go通道用于同时执行功能通过发送和接收一个指定的元素类型的值进行通信的机制。一个未初始化的信道的值是零。在第16行,我们创建了一个整数的双向通道。我们还可以使单向发送<-c和接收ç< -通道。在线路17和18,我们称之为异步地的第一和第二半片的一个。在第19行中,整数变量Xÿ接收来自所述信道的两个总和。在第7行,下划线_中,空白标识符,装置忽略来自所述第一结果值for..range环,这是该指数。该程序的输出是17 -5 12

远程和近

远程和近

发送方在一个信道以指示没有更多的值将被发送。接收机可以测试是否一个信道已被通过到接收表达式分配第二参数封闭。一个循环对于I:=范围C直到它被关闭从信道接收反复值。该信道的是能力,这是在通道中的缓冲器的大小,当您的信道设置为可选的第二个参数,如线17。注意在赋值语句的紧凑的形式斐波那契功能。该程序输出是斐波纳契数列,0至34的前10个值。

选择

选择

一个选择声明选其中一组可能的发送要么接收操作将继续进行。它看起来类似于开关声明但所有的情况下指的是通信业务。一个选择块,直到它的情况下可以运行一个,那么它执行的话。它随机选择一个,如果多准备。

在这里,主要函数调用斐波那契具有两个无缓冲通道,一个用于结果,一个用于一个函数退出信号。该斐波那契功能使用选择声明伺候两个通道。匿名,异步功能开始于行21个等待在线路23来接收值,则打印它们。经过10个值,它集退出信道,所以斐波那契函数知道停下来。

并发模式,实施例1

并发模式,实施例1

在这个例子中,我们使用选择创建一个扇入的​​goroutine结合串的两个输入通道,输入1输入2成一个无缓冲输出通道,C。该选择声明允许FANIN听同时两个输入通道和中继为准准备到输出通道。这不要紧,这两种情况下都使用相同的临时变量的名字来保存其各自的输入通道的字符串。这个例子是从罗布派克的谈话2012在围棋并发模式

并发模式,实施例2

并发模式,实施例2

本示例实现并行搜索有点像谷歌什么实际做互联网的,。首先,副本...搜索是的功能的可变参数参数;都搜索结果在别处定义的类型。

调用者传递的N个搜索服务器功能的第一函数,该函数创建一个信道C对结果和定义查询的功能一世个服务器,并将其保存在searchReplica。然后第一电话searchReplica异步所有N个服务器,总是返回通道C上的答案,并返回的第一个结果,从N台服务器回来。这个例子是从罗布派克的谈话2012在围棋并发模式

HTTP包

HTTP包

旅途中净/ HTTP包提供HTTP客户端和服务器实现。此示例实现返回目录的内容一个简单的Web服务器的/ usr /共享/ DOC到Web客户端。这个例子不会在正常工作去游乐场网络环境,但在Mac命令行中运行,它下面的返回到Web浏览器要求HTTP://本地主机:8080 /

庆典/
CCID /
杯/
groff的/
NTP /
后缀/

包模板

包模板

旅途中HTML /模板包实现数据驱动的模板,用于产生HTML输出是针对代码注入安全。如果不全部由添加的转义HTML /模板封装,例如可以已经产生了可运行JavaScript字符串,您好,