今天接着昨天看的内容往下看,看多少随缘吧,毕竟还有毕业论文要修改的。
- Go程序的执行顺序如下
1)按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:
2)如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。
3)然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。
4)在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。 - Go语言中不存在隐式类型转换,都必须是显示转化
- 编译期间自定义函数属于未知,因此无法使用于常量的赋值,但是内置函数可以使用
- 简单地说iota每次遇到const关键字时,就重置为0
- Go的语法 对于变量声明 从左到右的阅读顺序会减少歧义
- 全局变量允许声明但是不使用
- _为什么会存在,因为Go语言中不允许有没有使用的值存在,所以引入这个只写变量,来遗弃这个值。
- 初始化总是以单线程执行的并且按照包的依赖关系顺序执行,所以 init()里面的变量会优先执行
- 我觉得最好使用与操作系统架构无关的类型
- 别名,简化和限制范围使用,因为类型别名的道德新类型并非和原类型完全相同,不会拥有原类型附带的方法
- Go中的字符串是根据长度限定,而非特殊字符
- Go语言中使用strings包完成对字符串的主要操作
- strconv来处理字符串跟其他类型的转化
- Go语言里面的指针更像是Java中的引用。对于指针,不要过度使用,否则会导致代码结构不清楚,效率低下。