让我们一起学习go语言

出于朋友的推荐或项目的需要让我认识了go语言。简单的学习或了解后,发现go可以说吸取了各种语言的精华,并且语法简练,堪称至简至美。尤其在服务器并发性能上有超强的发挥,是七牛公司开发云服务的核心语言。并且性能上比c语言不会逊色多少,但是综合比较,go的优势完全大于c。很多人称是c/c++和python融合,抓住了c的性能,吸取了python的开发简易度。在此简单介绍下,go语言开发团队作者是1987年图灵奖得主,前贝尔实验室成员,B语言和C语言的设计者,Unix和plan9的创建者,肯.汤姆逊(Ken Thompson)。其他成员均是plan9在贝尔实验室的原班人马,可谓是大牛出品。话不多说,下面开始介绍go:

首先从世界著名的hello world小程序开始(go环境大家自己搞定吧),

package main  
import "fmt"  
  
func main () {  
    fmt.Println("Hello World! 你好,世界!")  
}  


1、package是go的最小分发单位,也是工程管理中依赖关系的体现。

2、import是导入包关键字,由于打印方法属于fmt包,所以在此导入之。

3、main方法是go的入口函数,fmt.Println()是打印输出函数。


有了以上的一段代码相信会有了一点感性认识。下面着重讲下go的语言特性,有其他c/c++,python,java等开发经验的朋友相信感触会很深。

1、自动垃圾回收;

2、函数多返回值;

3、优雅的错误处理;

4、匿名函数和闭包;

5、接口(go作者说过一句话,如果让我移植一种功能到其他语言,我会选择接口。可以想象它的与众不同和魅力所在)

6、并发编程;

7、反射;

8、等等,其他特性大家慢慢体会吧。


下面说下go的关键字,并简单举例示范:

1、break           //与c等其他语言的break一样的作用,终止循环并跳出,但又有点不一样,慢慢体会;

2、case             //和switch和select一起使用,没看错,select也会也case搭配使用;

3、chan             //信号定义,类似于unix中的管道

4、const            //常量定义

5、continue

6、default

7、defer            //相信有时忘记关闭一个已经打开的文件而让程序出错甚至崩溃的时候,那么defer就可以轻松解决这个问题。

8、else

9、fallthrough  //由于switch和case不像c里一样需要break来跳出,而fallthrough就可以让两个挨着的case连续;

10、for              //for就是for,不过已经完全超越了c中的for

11、func           //定义函数的关键字

12、go              //用于并行编程,简单直接;

13、goto           //go竟然还保留了goto,不过有时用它还是能解决棘手问题;

14、if

15、impor        //导入其他包关键字

16、interface   //定义接口

17、map          //没错,go把map升级为了关键字

18、package   //定义包名

19、range        //迭代用

20、return

21、select       //并发用,监听chan上的数据

22、struct

23、switch       //你懂的,不过已经超出了你的理解,它可以传递字符串,还有更多惊喜;

24、type           //定义新的类型用

25、var             //声明变量


基础类型有

bool型:bool

整型:int8、type、uint8、int16、uint16、int32、uint32、int64、uint64、int、uint、uintptr

浮点型:float32、float64

复数:complex64、complex128

字符串:string

字符:rune

错误:error


支持的符合类型有

指针(pointer)

数组(array)

切片(slice)

字典(map)

通道(channel)

结构体(struct)

接口(interface)


下面示范几个小例子:

package main

import (
	"fmt"
)

func add(a, b int) int {
	return a + b
}

func main() {
	result := add(1, 2)
	fmt.Println(result)
}


package main

import (
	"fmt"
)

func sum(values []int) int {
	var sum int
	for _, value := range values {
		sum += value
	}
	return sum
}

func main() {
	values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
	var result int
	result = sum(values)
	fmt.Println(result)
}

package main

import (
	"fmt"
)

func test() func() int {
	i := 10
	return func () int {
		j := 20
		i += 100
		j += 200
		return i + j
	}
}

func main() {
	f := test()
	fmt.Println(f(), f(), f(), f(), f())
}



go语言学习第一课到此结束。以上是本人初学go语言的一些粗浅认识,如有不对之处,望大牛指正。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Go语言学习CSDN"指的是在中国最大的IT技术专业社区CSDN上学习Go语言。作为一门新兴的编程语言Go语言由Google开发,具有简洁、高效、强大的特点,广泛应用于网络编程和分布式系统开发。 在CSDN学习Go语言有以下几个好处。首先,CSDN是中国最大的IT技术专业社区,拥有海量的技术文章、教程和学习资料。在CSDN可以找到大量关于Go语言学习资源,包括入门教程、深入剖析、项目实战等。这些资源可以帮助初学者快速入门,提高学习效率。 其次,CSDN上有活跃的技术社区和问答板块。学习者可以在这里提问、交流和分享经验。在学习Go语言过程中遇到困惑或问题时,可以通过发帖提问获取帮助。也可以浏览他人提问的解答,学习其他人的经验和技巧。 另外,CSDN还有专业的技术博客和技术讲座。在这些博客和讲座中,一些有经验的Go语言开发者会分享自己的实践心得、案例分析和最佳实践,对于学习者来说是很宝贵的学习资源。 最后,CSDN还有一些Go语言学习社群和论坛。学习者可以加入这些社群,与其他Go语言爱好者一起讨论和学习。这些社群通常有线上和线下的活动,参与其中可以结识更多志同道合的人,扩展自己的人脉和交流圈。 总而言之,在CSDN学习Go语言可以获得丰富的学习资源、交流机会和实践经验,对于快速掌握这门语言非常有帮助。不仅如此,CSDN也是一个互联网技术圈的门户,通过学习Go语言还可以了解其他热门技术和行业趋势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值