Golang

来自Ubuntu中文
Lifulinghan留言 | 贡献2011年12月29日 (四) 15:28的版本 →‎简介
跳到导航跳到搜索

golang(中文名:go语言)是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。。如果你想知道得更多,请移步至官网golang官网

golang的介绍

简介

  Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。Go是谷歌2009发布的第二款编程语言.2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用它是用来开发Android应用的一种BASIC语言.

  北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。

  谷歌资深软件工 程师罗布·派克(Rob Pike)表示,“Go让我体验到了从未有过的开发效率.”派克表示,和今天的C++或C一样,Go是一种系统语言.他解释道,“使用它可以进行快速开 发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大.”   2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%, 投入在该项目上.除了派克外,该项目的成员还其它一些谷歌工程师.   派克表示,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快,就像在使用一个交互式语言.   现有编程语言均未专门对多核处理器进行优化.派克表示,Go就是谷歌工程师为这类程序编写的一种语言.它不是针对编程初学者设计的,但学习使用它也不是非常困难.Go支持面向对象,而且具有真正的封装(closures)和反射 (reflection)等功能.   在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会 Go.   之所以将Go作为一个开源项目发布,目的是让开源社区有机会创建更好的工具来使用该语言,例如 Eclipse IDE中的插件.目前还没有支持Go的IDE.   在目前谷歌公开发布的所有网络应用中,均没有使用Go.但是谷歌已经使用该语言开发了几个内部项目.   派克表示,Go是否会对谷歌即将推出的Chrome OS产生影响,现在还言之尚早,不过Go的确可以和Native Client配合使用.他表示,“Go可以让应用完美的运行在浏览器内.”例如,使用Go可以更高效的实现Wave,无论是在前端还是后台.   Go 同时具有两种编译器,一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x86和32位x86计算机的一套编译器(6g和8g).谷歌目前正在研发其对ARM芯片和Android设备的支持.派克表示,“Android手机存在的问题是,我们一直没有一个数字协处理器.”

编译环境

golang编译器安装与配置

golang目前有两种编译,一个是golang官方提供的,另一个是gnu提供的gccgo;

golang官方编译器安装与配置

  • 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的
$ sudo apt-get install bison gawk gcc libc6-dev make
  • 安装mercurial工具,目的使用hg命令来提取golang的源代码
$ sudo apt-get install mercurial
  • 代取提取,如果您的网速比较慢的话,此步要多花点时间
$ hg clone -u release https://go.googlecode.com/hg/ go
  • 编译golang
$ cd go/src
$ ./all.bash

假如正常的话,会出现下面的信息

ALL TESTS PASSED

---
Installed Go for linux/amd64 in /home/you/go.
Installed commands in /home/you/go/bin.
*** You need to add /home/you/go/bin to your $PATH. ***
The compiler is 6g.

*配置系统环境 你在~/.bashrc或者 ~/.profile写入你的配置文件,下面我会以.bashrc来说明; 那么,golang要设置那些变量呢? 1、$GOROOT golang的目录,这里我们是~/go 2、$GOOS 和 $GOARCH 系统的参数 设置方法如下:

	$GOOS 	$GOARCH 	
	darwin 	386
	darwin 	amd64
	freebsd 	386
	freebsd 	amd64
	linux 	386
	linux 	amd64
	linux 	arm 	incomplete
	windows 	386 	incomplete

3、$GOBIN golang的bin目录,这里是~/go/bin 下面是一个配置例子:请大家特别注意$GOOS 和 $GOARCH 的配置

$ gedit ~/.bashrc

然后加入

export GOROOT=~/go
export GOARCH=386
export GOOS=linux
epxort GOBIN=GOROOT/bin
export PATH=$PATH:$GOBIN

gccgo安装 gccgo似乎是从4.6开始支持的。也就是说,要在ubuntu用命令安装gccgo只有ubuntu 11.10包括且以上的版本。

大家可以试一下命令

gcc -v

,查看

--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin 

如果有一个go,说明你的gcc支持golang,那么就执行以下命令安装gcc-go(大家试一下这命令,我不敢确定):

sudo apt-get install gcc-go

如果用源代码编译的话,请参照gcc编译。这里就不介绍了!

Hello world

  • 新建一个hello.go,并写入以下内容:

package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}
  • 使用golang官网编译器('注意:'6g是amd64的go编译器,它生成的是.6文件。而386一般使用8g命令,它生成的一般是.8格式的文件。当然还有一个5g的命令是用于arm的cpu,同理amd64用6l,386用8l,arm用5l的链接器!)
$ 6g hello.go
$ 6l hello.6
$ ./6.out
hello, world
  • 使用gccgo编译
$ gccgo hello.go
$./a.out
hello,world