BOO入门/运算子
外观
< BOO入門
BOO入门 > 运算子 (上一章:容器与转型 下一章:函数)
数值运算
[编辑]名称 | 语法范例 | 注解 |
---|---|---|
乘 | a * b | |
除 | a / b | |
取余数 | a % b | 通常也被称为 mod 或 modulus |
加 | a + b | |
减 | a - b | |
次方 | a ** b | 不要跟位元运算的 Xor ^ 搞混了 |
位元右移 | a >> b | |
位元左移 | a << b | |
位元运算 And | a & b | |
位元运算 Or | a ǀ b | |
位元运算 Xor | a ^ b |
数值运算子也可以用在等号前面,语法是这样的: a <operator>=b,使用时就像这样:a+=b。 实际上就跟 a = a <operator> b 一样,以刚刚的例子来说,a+=b 就与 a=a+b 是一样的。
关系与逻辑
[编辑]名称 | 语法范例 | 注解 |
---|---|---|
小于 | a < b | |
大于 | a > b | |
小于或等于 | a <= b | |
大于或等于 | a >= b | |
等于 | a == b | |
不等于 | a != b | |
逻辑上的而且(and) | a and b | 使用在 a 与 b 都是 boolean 值时 |
逻辑上的或(or) | a or b | 使用在 a 与 b 都是 boolean 值时 |
逻辑上的相反(Not) | not a | 使用在 a 是 boolean 值时 |
型别
[编辑]名称 | 语法范例 | 注解 |
---|---|---|
型别转换 | cast(string, a) | |
型别转换 | a as string | |
是否相等或相容于指定型别 | a isa string | |
得到类别型别 | typeof(string) | |
得到变数型别 | a.GetType() |
Primary
[编辑]名称 | 语法范例 | 注解 |
---|---|---|
存取成员 | A.B | 在第八章-类别将会提到 |
呼叫函数 | f(x) | 在第七章-函数将会提到 |
后置加 | i++ | 参见:前置加减与后置加减的差别 |
后置减 | i-- | 参见:前置加减与后置加减的差别 |
呼叫建构子 | o = MyClass() | 在第八章-类别将会提到 |
译注:Primary 不知道该怎么翻译,保留不翻。
一元运算
[编辑]名称 | 语法范例 | 注解 |
---|---|---|
负值 | -5 | |
前置加 | ++i | 参见下一节:前置加减与后置加减的差别 |
前置减 | --i | 参见下一节:前置加减与后置加减的差别 |
括号 | (a + b) |
译注:Unary 也就是一元运算,你可以参考Unary
前置加减与后置加减的差别
[编辑]在程式里面使用的时候,前置加减 (++i/--i) 会先施行 i=i+1 或 i=i-1 的动作,然后回传 i 的新值,而后置加减 (i++/i--) 则是先回传 i 的值,然后再进行 i=i+1 或 i=i-1 的动作。
// 前置加與後置加
num = 0
for i in range(5):
print num++
print '---'
num = 0
for i in range(5):
print ++num
输出结果
0 1 2 3 4 --- 1 2 3 4 5
练习
[编辑]- 把你的手放在墙上,然后左脚往后约 3 呎,右脚往后约 2 呎。 (译注:这应该是作者的玩笑吧~让你伸展伸展身体~ :D )