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
  建议 要使你的程式码更具可读性的话,避免使用 ++ 或 --,改使用 i+=1 或 i-=1 。

练习

编辑
  1. 把你的手放在墙上,然后左脚往后约 3 呎,右脚往后约 2 呎。 (译注:这应该是作者的玩笑吧~让你伸展伸展身体~ :D )