整型
符号运算符
- +
- -
注意:
- 表达式类型与操作数类型一致
- 无符号整型不能使用符号运算符
算术运算符
- +
- -
- *
- /
- %
复合算术运算符:
- +=
- -=
- *=
- /=
- %=
注意:
- 表达式类型与操作数类型一致
- 整型除法为floor除,商div = floor(被除数 / 除数)
- 模mod = 被除数 - 除数 * 商div
- /和%运算符允许被除数为0,不允许除数为0,除数为0程序crash,如果在编译期确定/和%运算符除0,编译error
比较运算符
- >
- >=
- <
- <=
- ==
- !=
注意:
- 表达式类型为Bool型
浮点型
符号运算符
- +
- -
注意:
- 表达式类型与操作数类型一致
算术运算符
- +
- -
- *
- /
- %
复合算术运算符:
- +=
- -=
- *=
- /=
- %=
func arith_op()
{
var a: Double
var b: Double
a = 20; b = 8
print("div = \(a / b), rem = \(a % b)")
a = -20; b = 8
print("div = \(a / b), rem = \(a % b)")
a = 20; b = -8
print("div = \(a / b), rem = \(a % b)")
a = -20; b = -8
print("div = \(a / b), rem = \(a % b)")
}
output:
div = 2.5, rem = 4.0
div = -2.5, rem = -4.0
div = -2.5, rem = 4.0
div = 2.5, rem = -4.0
注意:
- 表达式类型与操作数类型一致
- 浮点型除法为精确除,商div = 被除数 / 除数
- 模mod = 被除数 - 除数 * floor(商div)
- 浮点数不是精确值,因此无精确的浮点值0,因此允许除数为浮点值0
比较运算符
- >
- >=
- <
- <=
- ==
- !=
注意:
- 表达式类型为Bool型
布尔型
逻辑运算符
- &&
- ||
- !
注意:
- 表达式类型为Bool型
- !与操作数之间不允许whitespace
比较运算符
- ==
- !=
注意:
- 表达式类型为Bool型