作为一门相对较晚的编程语言,Go语言在原生支持高并发、云原生等领域有着出色的表现,比如目前流行的容器编排技术Kubernetes,容器技术Docker是用Go语言编写的。虽然Java等其他面向对象语言也可以做云原生相关开发,但支持程度远低于Go语言。它以其语言特性和简单的编程方法,在一定程度上弥补了其他编程语言的不足,一度成为流行的编程语言。最近在学习Go语言。之前用过C#、Java等面向对象的编程语言,发现编程方式和其他语言有很多不同之处。好记性不如烂笔头。综上所述,将其与其他语言进行比较。这里只总结不同点,具体语法不做详细介绍。种一棵树最好的时间是十年前,其次是现在。基本语法1.变量1)Go语言变量声明语句不需要使用分号作为分隔符varv1intvarv2string2)几个需要声明的变量可以放在一起var(v1intv2string)3)变量可以是initialized和其他语言一样,直接在变量后面加一个等号,等号后面就是要初始化的值。也可以使用变量名:=变量值的简单方式varv1int=10//正常使用方式varv2=10//编译器可以推导出v2的类型v3:=10//简单的写法清楚表达了变量声明4)变量赋值Go语言的变量赋值与大多数语言一致,但是Go语言提供了多重赋值的功能,比如下面的i和j变量交换语句:i,j=j,i在不支持多重赋值的语言中,需要引入一个中间变量来交换两个变量的值:t=i;i=j;j=t;5)匿名变量在使用其他语言时,有时你想获取一个值,但由于函数返回多个值,你不得不定义很多不存在的变量。Go语言可以使用多个返回值和匿名变量来避免这种写法。让代码看起来更优雅。如果GetName()函数返回3个值,它们分别是firstName、lastName和nickName。funcGetName()(firstName,lastName,nickNamestring){return"li","mingqi","dove"}如果是指向获取nickName,那么函数调用可以这样写_,_,nickName:=GetName()这种写法可以让代码更加清晰,从而大大降低通信的复杂度和维护的难度。2.常量1)基本常量使用关键字const定义。可以限制常量类型,但不是必须的。如果未定义常量的类型,则它是无类型常量。2)预定义常量Go语言预定义了这些常量true和false与iotaiota相比,它可以被分配为一个可以被编译器修改的常量。每出现一个const关键字就重置为0,然后在下一个const出现之前每出现一个iota,它所代表的数字就会自动加1。//预定义常量:true,false和iota//iota可以认为是一个编译器修改的常量,当没有出现const关键字时,它被重置为0,然后在下一个const出现之前,//不会出现一次iota,它的数量会自动增加1const(c0=iota//c0=0c1=iota//c1=1c2=iota//c2=2)fmt.Println("c0:",c0)fmt.Println("c1:",c1)fmt.Println("c2",c2)const(x=1<