Go语言入门|Go主题月

560 阅读1分钟

Go语言:强类型 2009年,“云计算时代的C语言”

image.png

Go语言核心特性

  1. 并发编程:
  • 在并发编程方面简洁不少
    
  • golang的并发执行单元是一种称为goroutine的协程
    
  1. 内存回收:
  • 自动回收,无需管理
    
  • 只需new,不用释放
    
  1. 内存分配:
  • 先分配一块大内存区域
    
  • 大内存切分为各个大小等级的块,放入不同的空闲list中
    
  • 对象分配空间时,从list中取出大小合适的块
    
  • 内存回收时,把不用的内存重放回空闲的list
    
  • 空闲内存会按照一定策略合并,减少碎片
    
  1. 编译
  • 两种编译器
    
  • 建立在GCC上的Gccgo
    
  • 针对64位×64和32位×86计算机的一套编译器(6g和8g)
    
  1. 网络编程
  • 多接口
    
  1. 函数多返回值
  • 允许函数返回多个值
    
  1. 语言交互性
  • 调用其他语言的库
    
  • 可以和c程序交互
    
  1. 异常处理
  • 三个关键字deferpanicrecover
    
  • defer是函数结束后执行,呈先进后出
    
  • panic是程序出现无法修复的错误时使用,会让defer执行完
    
  • recover会修复错误,不至于程序终止。不确定函数不会出错时使用defer+recover
    
  1. 其他
  • 类型推导
    
  • 接口interface
    
  • defer机制
    
  • “包”的概念
    
  • 交叉编译
    

Go语言优势

  • 学习曲线容易
    
  • 快速的编译实践,开发和运行效率高
    
  • 并行和异步编程
    
  • 自由高效:组合的思想、无侵入式的接口
    
  • 强大的标准库
    
  • 部署方便:二进制文件、Copy部署
    
  • 稳定性