Go笔记-Chap3 表达式

3.1 保留字

仅25个keyword

3.2 运算符

优先级:一元>二元
二元运算符:除位移操作,操作数类型必须相同,若其一无显式声明,会自动转型

位运算符

XOR:按位异或,只有一个1
AND NOT:按位清楚(bit clear)

自增

不再是运算符,只能作为独立语句,不能用于表达式

指针

内存地址是内存中每个字节单元的唯一标号,指针则是一个实体,是一个专门用来保存地址的整型变量。

  • 取址:&,获取对象地址
  • 指针:*,间接引用目标对象
  • 二级指针:**

3.3 初始化

对复合类型变量初始化时,语法限制:

  • 初始化表达式必须含类型标签 var a data = data{1, "abc"}
  • 左花括号必须在类型尾部,不能另起
  • 多个成员初始值以逗号分隔
  • 允许多行,但每行须以逗号或右花括号结束

3.4流控制

if...else...

  • 支持初始化语句,可定义块局部变量或执行初始化函数
  • 保持代码块功能的单一性

switch

  • 多个匹配条件命中一,即可OR
  • 支持初始化语句
  • default建议放到末尾
  • 无需显式执行break
  • fallthrough,可以贯通后续,但是不再匹配后续条件表达式
  • 可用来替换if语句(没必要,难以阅读)

for

仅有for一种循环

  • 初始化语句仅被执行一次
  • 条件表达式中,如有函数调用,可能重复执行,最好定义局部变量保存
  • for...range...完成数据迭代,其定义的局部变量会重复使用
  • range会复制目标数据,比如数组,如果想修改数组,可改用数据指针或切片类型
  • range目标表达式是函数调用,也仅被执行一次

goto, continue, break

  • 使用goto,先定义标签,区分大小写
  • break,用于switch, for, select语句,终止整个语句块执行
  • for, 仅用于for循环,立即进入下一轮循环

你可能感兴趣的:(Go笔记-Chap3 表达式)