很久没更新了,主要原因还是自己比较习惯在本地写笔记,不太习惯上传(绝对不是因为懒得排版!),最近也要加快找暑期实习的进度啦,所以更新继续随缘,有空了会放一些自己的笔记上来,大家随缘看哈
基本特点:
- go既保证了静态编译语言的安全和性能,又达到了动态语言的开发与维护的效率
- 从C中继承了很多的理念,包括表达式语法,控制结构,基础数据类型,调用参数传值/指针等;
- 引入了包的概念,用于组织程序结构,go语言的一个文件都要归属于一个包,而不能单独存在;
- 引入了垃圾回收机制,避免了内存泄漏
- 天然并发,语言层面支持并发,,可实现大并发处理(goroutine)
- 吸收了管道通信机制,go语言特有的管道channel
- 函数可以返回多个值
- 新的创新:切片slice,延时执行defer等
- go一行最多不能超过八十个字符,多出的要用逗号换到下一行
- 面向接口编程而不是面向对象编程
- 在go语言中,标识符用来标识及函数名、类型名、方法名等,如果标识符的首字母是大写的,那就表示该标识的内容是对外部可见的(也就是可以通过import这个包来访问这个包内标识符首字母大写的内容)
编译注意:
-
go build与go run的区别:
go build:先编译了可执行文件,在编译过程中会将该程序依赖的库文件包含在可执行文件之中,所以可执行文件也会打了很多,我们可以将该.exe文件拷贝到没有go开发环境的机器上运行
go run:只能在具有go开发环境的机器上运行
-
在go中每个文件必须归属于一个包
-
go是一行行进行编译的,因此一行只能写一个语句
-
go定义的变量或者import的包如果没有使用过则不能通过编译
-
tab,实现缩进默认向后面移动,shift+tab整体向左移动
-
gofmt -w test.go 自动缩进
go项目架构:
- bin:存储所编译生成的二进制文件。
- pkg:存储预编译的目标文件,以加快程序的后续编译速度。
- src:存储所有.go文件或源代码。在编写 Go 应用程序,程序包和库时,一般会以
$GOPATH/src/github.com/foo/bar
的路径进行存放。