[学习记录]初识go语言

kka 2020-06-16

由于学习工作需要接触到go语言,昨天花了大概半天时间查找资料,然后再用半天时间快速过了一遍go基本的语法。再简单敲了一些命令作为练习。作为一个初次见面来说应该够了,所以本文就简单介绍下这一天的收获,剩下的go的高级特性后续学到了再说。

首先推荐一下go语言教程网站http://codingdict.com/article/6745,作为一个简单认识而言足够了。

如果想好好学一学,则可以看一下《go语言圣经》(英文名《The Go Programming Language》),好像是因为中文版译名被占用了才不得已起这个名字?不过书本身是没有问题的,就和《The C Programming Language》一样经典。

--------------------------------------------------------------------

最开始当然是配置环境了,windows可以去https://golang.org/(好像访问有困难),linux可以直接apt-get或者yum获取go。

首先看一下hello world的go版本

package main

import "fmt"

func main() {
   fmt.Println("Hello, World!")//println末尾自带换行
}

虽然说号称21世纪c语言,但乍一看和python还蛮像的,每句末尾无需分号,由换行解决。println作为fmt的一个方法供调用。

运行时我们有两种方法,一种是go run hello.go,另一种是go build hello.go,再去运行生成的可执行文件。既有python内味,也有c内味了。

这里对于go的package不做多介绍,直接介绍一些最基本的语法,只是为了让大家对go有一个初步认识

1.标识符

和所有编程语言一样,go也有若干个保留字(25个),我们用标识符时要尽量避免撞车,同时还要遵守字母数字组合,数字不开头,特殊符号只认下划线_。

2.变量声明

go的变量声明和c有一些差别,格式为: var   变量名    变量类型。先提示变量名,后提示变量类型,例如 var  age   int

也可以不那么规矩,例如  var  age=30   ,就会直接将30赋给age,并自动判断其类型,这又和python很像

极限偷懒甚至可以,例如  age:=30,也能完成上述功能,但需要注意age必须是在这一句中才第一次被声明。

3.常量声明

和变量声明很像,关键字为const,    const  常量名    常量类型 =   值

常量声明有两个有趣的地方,一个是“自动复读”

[学习记录]初识go语言

 第二个是自动计数器iota

[学习记录]初识go语言

 4.if语句

由于go并没有采用python的缩进分段法,所以这方面就和c一样了,大括号变成必须的了

if{}

else if{

}

else{}

5.switch

go的switch很特别,大体格式与c完全一样,但go执行完一个分支后不需要手动break

还有个小技巧变量类型判断。

[学习记录]初识go语言

6.循环

[学习记录]初识go语言

 go中一个for就承担了for和while的职责,通过for和if也能看出,对于c中部分关键字后跟小括号的语句,go中都省略了小括号。

同时go还有类似python的迭代循环

[学习记录]初识go语言

 此外break、continue、goto都和c一样

7.函数

函数格式如下:

func  函数名(参数名  参数类型,参数名2  参数2类型)   (返回值1类型  返回值2类型){}

具体的值传递与引用传递与c语言一致

8.其它

其它例如数组,指针,结构体,都和c类似,而数组切片、range取数又和python类似。在异常处理、接口等地方也是满满的既视感,可以说这些最简单的语法方面go没有什么特别独特的地方,因此对于学习过c、python的人来说,go并不难入门。后续学习经历可能更应该放在go的应用场景以及一些独有的特性上。

相关推荐