引言
这篇文章是为了记录我在学习Go语言圣经时的心得体会,同时也会结合一些课程学习的内容。
基础语法
在Go语言圣经一书中,第一章为Go语言的入门级学习内容,共有8个小节。
Hello,World
由于该内容和GO语言的常用特性解析在先前的笔记[Go语言入门指南 |青训营](Go语言入门指南 |青训营 - 掘金 (juejin.cn))有所提及,那么此处将忽略不提。
命令行参数
命令行参数是一种输入源,它是指在操作系统的命令行中输入的参数,用于向程序传递一些信息或指令。
os 包以跨平台的方式,提供了一些与操作系统交互的函数和变量。程序的命令行参数可从 os 包的 Args 变量获取;os 包外部使用 os.Args访问该变量。
变量os.Args是一个字符串的切片。(切片是Go语言的基础概念,与python语言的切片类似,是对数组的抽象。)os.Args的第一个元素:os.Args[0],是命令本身的名字;其他的元素则是程序启动时传给它的参数。
var定义了两个变量s和sep的类型,string。对GO语言来说,变量会在声明时直接初始化。如果没有被初始化,那么变量被赋予对应类型的零值。是值类型的零值是0,字符串类型的零值是空字符串“”。在这个案例中,s和sep被初始化为空字符串。
对于string类型的变量来说,+可以连接字符串,sep + os.Args[i]表示sep与os.Args[i]连接。s+=表示这两个变量连接后再和s的旧值连接,最后用这个连接了三个变量的值为变量s赋值。
自增语句 i++表示给i加一,这与i+=1,i=i+1都是等价的。i++是语句,而不是表达式,因此j=i++是违法的,而且++和--只能放在变量名之后。
GO语言只有for循环这一种,但是for循环有很多形式。在GO语言圣经中,给出了for循环的一种形式。
for循环的三个部分 initialization,condition,post都不需要括号包围,但是左边的大括号必须和post在同一行。
initialization语句是可选的,如果它存在,那么它必须是一条简单语句。condition是一个布尔表达式,如果其值为true则执行该循环体语句。post在循环体结束后执行,之后再次对condition求值。condition的值为false时,循环体语句不执行,循环结束。
如果for循环没有以上的三个部分,那么就是一个无限循环,可以用一条break或return语句终止循环。
结束语
前两小节介绍完毕,后六节的内容将在后续笔记中介绍。