简介
特性:
- 自动垃圾回收 gc
- 更丰富的内置类型 字符串 字典,切片
- 函数多返回值 避免构建一个新的数据结构获取返回值
- 错误处理 defer panic recover
- 匿名函数和闭包 函数也是值类型
- 类型和接口 鸭式辩行,只要实现了接口中所有方法的类型,可以当作是接口类型直接赋值,而不需要继承
- 并发编程 goroutine,通过消息传递而不是通过共享内存通信,go关键字启动一个协程,一个协程阻塞时,调度器会调用其他的协程执行,调度的开销非常小,go实现了CSP 通信顺序进程模型,用channel来实现,通过channel来进行跨goroutine的通信,如果多个goroutine不得不访问共享内存,可以使用sync包提供读写锁功能
- 反射 获取对象类型的详细信息,对性能有影响,不推荐使用
- 语言交互性 可以通过Cgo工具调用c语言代码
其他需要注意的地方:
- package表示go代码所属的包,go可执行程序必须包含一个名为main的包,其中包含一个main()函数,没有参数也不能定义返回值,命令行传入的参数在os.Args中
- import用于导入依赖的包,不能包含在源码文件中没有用到的包,否则go编译器会报错
- 使用关键字func 定义函数
- 注释和C语言相同
编译程序
工程管理
- 使用go命令行
- 工程路径加入到GOPATH中(./bashrc中export,多个路径用冒号分割)
- 消除工程文件概念,完全用目录结构和包名来推导工程结构和构建顺序
|
请发表评论