第1章 概述

1.1 特征

  1. 语法简单
  2. 并发模型
  3. 内存分配
  4. 垃圾回收
  5. 静态链接
  6. 标准库
  7. 工具链

1.2 简介

  1. 源文件
  • 使用UTF-8编码,对UNICODE支持良好
  • 每个源文件都属于包的一部分,在文件头用package声明所属包名称
  • 以.go作为文件扩展名
  • 语句结束分号默认省略
  • 支持C样式注释
  • 入口函数main没有参数,且必须放在main包中
  • 用import导入标准库或第三方包
  • 可直接运行或编译为可执行文件
  1. 变量
  • 使用var定义变量,支持类型推断
  • 编译器确定变量总是被初始化为零值
  • 函数内部可省略var关键字,使用更简单的定义模式
  1. 表达式
  • if
  • switch
  • for
  1. 函数
  • 可定义多个返回值,并对其命名
  • 可作为参数或返回值
  • 用defer定义延迟调用,无论函数是否出错,确保结束前被调用
  1. 数据
  • 切片slice实现动态数组功能
  • 字典map从运行时层面获得性能优化
  • 结构体struct可匿名嵌入其他类型
  1. 方法
  • 可以为当前包内的任意类型定义方法
  • 可直接调用匿名字段的方法,实现与继承类似功能
  1. 接口
  • 采用duck type方式,无需在实现类型上添加显示的接口实现声明
  • 空接口类型interface{},可接收任意类型对象
  1. 并发
  • 整个运行时完全并发化设计
  • 通道channel与goroutine搭配,实现用通信代替内存共享的CSP模型

posted on 2019-04-05 20:55  谷山  阅读(98)  评论(0)    收藏  举报

导航