taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

Google Go编程语言入门

2012-05-30

Go是Google推出的一种编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。

 

Variable Declarations(变量声明)
var sum int // Just a declaration
var total int = 42 // A declaration with initialization

第一眼看上去有些奇怪,但这样是有好处的,例如下面的这个C代码片段:

int* a, b;

这就意味着a是一个指针,但b却不是。要声明他们都是指针必须重复两次,但在Go中,你可以这样声明:

var a, b *int

 

当一个变量被初始化后,编译器会自动识别他的类型,所以不必要指明其类型:

var label = "name"

 

这样var关键字也就多余了,因此作者提出了一个新的赋值操作符声明并初始化一个新变量:

name := "Samuel"

Conditionals(条件) 

Go中的条件句使用If-else,与C语言相同。但是它的条件不需要包含在括号中,这将减少阅读代码时的视觉混乱。当然,在条件之前还可以添加一个简单的声明。

 

result := someFunc();
if result > 0 {
	/* Do something */
} else {
	/* Handle error */
}

还可以:

if result := someFunc(); result > 0 { 
	/* Do something */
} else {
	/* Handle error */
}

 

Switches

Switches 语句也与C类似,但是在C的基础上进行了改进。

 

 C 代码:

int result;
switch (byte) {
 case 'a':
 case 'b':
   {
     result = 1
     break
   }

 default:
   result = 0
}

 Go 代码:

var result int
switch byte {
case 'a', 'b':
  result = 1
default:
  result = 0
}

 

Go 匹配的不仅仅是integer和character类型。

 C 代码:

int result = calculate();
if (result < 0) {
  /* negative */
} else if (result > 0) {
  /* positive */
} else {
  /* zero */
}

Go 代码:

switch result := calculate(); true {
case result < 0:
  /* negative */
case result > 0:
  /* positive */
default:
  /* zero */
}

当switch的值被忽略时,假设为真,所以上述代码还可简化为:

switch result := calculate(); {
case result < 0:
  /* negative */
case result > 0:
  /* positive */
default:
  /* zero */
}

 

原文对Go语言的语法进行了详细的介绍,此文章只是原文的一小部分,更多详情请查看原文:Google Go: A Primer

+++++++++++++++++++++++++++++++++++++

golang   http://golang.org/    Go语言是由Google开发的一个开源项目,具体语言特征就不细说了,可以查看一下文档。 学习使用了几天,想起了一句广告语: 简约而不简单。

资深程序员  云风对go语言使用的一些体验  http://blog.codingnow.com/2010/11/go_prime.html

go 语言翻译项目 http://code.google.com/p/golang-china/

《学习 go语言》 中文版 http://www.mikespook.com/learning-go/

《go 编程导读》 http://code.google.com/p/ac-me/downloads/list

当然, 最主要的还是golang 的官方文档  http://golang.org/doc/docs.html

golang windows 上安装 http://code.google.com/p/gomingw/updates/list

golang 是比较新的语言。 现在的版本还没到 1.0 . 据说明年的时候能够发布1.0 。

现在国内已经有些公司使用golang 构建一些系统 。

qbox.me 就是用go 构建的一个网盘。拘束 douban 也有些是go搭建的服务。

go 太年轻了, 年轻到没有一个成熟的ide . 

当然,linux c的程序员们无所谓。 可以用vim  emacs 配合gocode , 绝对得心应手。http://www.mikespook.com/?p=1102

对于一些编程比较以来ide 的程序员来说,就比较痛苦了。 这里推荐一个 http://go-ide.com/ , 本来是idea 的一个插件,后来作者把这个项目独立出来。

试用过一些ide 其中包括 eclipse的golang 插件,vim +gocoede, 还是 go-ide这个最顺手, 可能也是应为一直都在用idea ,比较熟悉吧。其中包含 代码高亮,智能提示,代码折叠,编译,转到方法定义 等等。 

还等什么呢? 尝试一下吧。有人说,当你手里只有一把锤子的时候,你看什么都像钉子。

尝试不同的语言,也许会发现另一番景色


类别:技术文章 | 阅读:136223 | 评论:0 | 标签:golang

想收藏或者和大家分享这篇好文章→

“Google Go编程语言入门”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS2.5Beta5(最后更新14年05月25日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云

友情链接