golang语言基础篇
go 语言特性: ◆ 自动垃圾回收 具备系统自动释放资源 ◆更丰富的内置类型 map 类型、 slice 类型 ( 类似 vector) ◆函数多返回值 跟 lua/erlang 一样,支持函数多返回值,优化输入输出参数、结构体参数等传递 ◆错误处理 defer/recover/panic, defer 用于资源的释放, go 语言不提供构造和析构, recover 截取错误处理流程,一般在使用 defer 的关键字函数中使用;若在无异常的 goroutine 中使用 recover ,会导致此 goroutine 所在的进程打印错误信息后,直接退出 ◆匿名函数 a := fun() / a(); ◆类型、接口 类型 struct ,类似 C 的结构体,但不支持继承和重载; 接口:非入侵式接口、 interface{} 作为函数参数,可传递任何类型 ◆并发 吸取 erlang 语言的面向消息编程机制,所有的数据交互都用 goroutine 的消息传递 ◆反射 模仿 java 语言的反射特性,但不像 java 内置类型工厂 ◆语言的交互性 go 语言通过 Cgo 库,可混合编写 C 语言代码 golang 并发: golang 为实现高并发性,引入了 goroutine ,通过 channel 模式用 CSP (通信顺序进程, Communicating Sequential