后端学习go的小tips(自用

76 阅读2分钟

1.函数名要大写;不同于python和c/cpp,go的函数大小写很重要,每一个单词的首字母都要大写(我遇到的是这样)比如输出函数Println()还有NewReader()方法,都是如此。一定不能忘了,我tnnd被硬控了半小时就是因为这个

2.和c/cpp很像,go的分隔使用{}分隔代码块,但是有所不同的是,c/cpp中if/for等语句后面可以接换行再接{},go中只能直接接一个{}。否则就报错少一个"我也不知道咋改,就当规则吧,另外条件表达式也不需要用()括起来

3.对于所有的if/for,都需要加{},不能像c/cpp一样使用

4.循环:go中只有for循环

5.switch分支语句得到巨大加强:c/cpp中,每一个case后都需要加上break才能保证输出不乱套,go中执行case1后不会执行case1后面的case,相当于python中的if,elif,else结构 ;另外,不仅仅是常量表达式,go中的switch可以使用任意的变量类型

6.数组倒是和c/cpp中一致;但是go中更常用的是切片:a.使用make来创建一个切片;b.使用append来向其中追加元素,值得注意的是,go中的append不同于python,go中append不是直接对该切片操作,而是返回操作后的切片,有点类似于python中的字符串的修改操作,好消息是,go中的append可以追加多个元素;c.slice也支持切片操作这个和python一致

7.map可以用make(map[])[]中是key的类型,[]外面是value的类型;值得一提的是golang中的map是完全无序的,遍历的时候会是一个随机的顺序

8.说到遍历,就不得不提到range:a.对于数组,range会返回两个值,一个是下标,一个是对应位置的值,如果不需要索引,可以使用下划线;b.对于map,第一个值是key第二个值是value

9.golang中,变量类型是后置的

10.golang中几乎所有函数都返回多个值,第一个值是函数运行后的结果,第二个值是错误信息

11.golang中也有指针,不过操作很有限,多数时候用于对传入数据的修改

12.有关错误处理,这倒是涉及我的盲区了(没办法python和c/cpp)都没学,简单来说,就是这个err可以指出哪一个自建函数出了错,同时,内置函数也带有err返回值,也相对好处理

13.有关字符串操作,直接上图

屏幕截图 2024-11-04 065026.png