golang基础语法
go与C
- go语言的语法与C/Cpp语言十分相似,但又做了很多简洁化的改进。
- go对C语言中一些局限性做了弥补,如
switch()语句在C中只能对整形使用,其作用范围也是一个离散的点集合;但在go中,switch()语句的适用范围被扩展了,不仅去掉了略显鸡肋的每个case后都要加一个break,还让其支持的判断类型拓展为所有数据类型,并且不再是点集合而可以是区间集合了。 - go语言在对C做了很多改进的同时,也没有损失太多运行速度,甚至在很多的环节上做的比C/Cpp更快
go中的基本语句
-
变量定义
- 在go语言中,定义变量的基本方式有两种,第一种是形如
var a int的定义方法,第二种形如是a := 666的定义方法。其中,第一种方法中不必须要写出变量的具体数值;而第二种方法必须写出变量的具体数据,然后编译器会根据具体数值来推测确定变量的类型。
- 在go语言中,定义变量的基本方式有两种,第一种是形如
-
数组与切片
- 数组与C/Cpp中基本一致,是长度不可变的连续储存的一个数据段;而go中感到切片可以理解成是一种可变数组,即长度是可以修改的。
-
哈希
map- 可以将
map理解为下标可以是字符串的数组。对于一般的数组而言,其下标只能是0开始的整数,且有固定长度上限;但是对于map而言,其下标可以是字符串,相当于程序帮我们做了一次哈希,让字符串键值能成为索引。
- 可以将
-
函数命名
func function(var a int, var b string) int- 函数定义的方法可以参考C/Cpp语言中定义函数的方法,只不过要住址函数类型都是后置的。
-
条件与分支
if和switchif的用法与C/Cpp一致,只不过还是要注意在go语言中,if和swtich后的条件是不需要加括号的。
-
循环语句
for- go语言中删去了C/Cpp中的
while和dowhile循环语句,全部采用for语句来执行循环,并且采用了更为简单的语法,不在需要像C/Cpp那样需要保持三个分句两个分号了。go在循环上还做了类似于python的改进化简,如for i, num := range nums就表示对数组nums进行遍历,而i和num就分别是数组下标和当前数值。
- go语言中删去了C/Cpp中的
-
结构体
struct与JSON格式转化- 结构体的定义与C基本一致,但依旧还是要遵守结构类型申明后置的原则。
- go语言中可以用
info方法来快速创建并赋值一个结构体对象。同时,在保证结构体中键值名首写字母为大写的前提下,可以用json.Marshal()方法来把结构体转换成16进制储存的json文件。