表达式和转换
Last updated
Last updated
Blitz 支持以下运算符,其顺序为优先级从高到低:
关键字 | 类型 | 一元 / 二元 |
---|---|---|
一元运算符需要一个操作数,而二元运算符需要两个操作数。
算术运算符产生与操作数数据类型相同的数据。例如,两个整数值相加将产生一个整数值结果。
如果二元运算符或比较运算符的两个操作数不同,则使用以下转换规则进行转换:
如果其中一个操作数是自定类型对象,则另一个必须是相同类型的对象,否则返回 Null
。
如果其中一个操作数是字符串,则另一个将转为字符串。
如果其中一个操作数是浮点值,则另一个将转为浮点值。
否则,两个操作数必须为整数值。
当浮点值转换到整数值时,该值将舍入为最接近的整数值。当整数值和浮点值转换为字符串时,将转换为数字的字符串表达形式。
当字符串转换为整数值或浮点值时,字符串将在第一个非数字字符或结尾处停止转换。
字符串唯一可以使用的运算符是 +
,它被用于连接两个字符串。
Int
、Float
和 Str
可以用于转换值。它们的后面可以跟随适当的类型标签,例如:Int%
、Str$
和 Float#
。
比较运算符始终产生整数值结果:1
代表真,0
代表假。
如果其中一个操作数是自定类型对象,则另一个操作数必须是相同类型的对象,或者为 Null
,并且允许使用的唯二运算符是比较运算符 =
和 <>
。
按位运算符和逻辑运算符将始终将其操作数转换为整数值,并产生整数值结果。
逻辑否运算符将在操作数非 0 时返回 0
,反之则为 1
。当表达式被用于条件执行代码中时(例如 If
语句),结果将被转换为整数值,非 0 结果为真,0 则为假。
New
, First
, Last
自定类型运算符
一元运算符
Before
, After
对象运算符
一元运算符
Int
, Float
, Str
类型转换运算符
一元运算符
+
, -
, ~
按位运算符
一元运算符
^
幂运算符
二元运算符
*
, /
, Mod
算术乘、除、模
二元运算符
Shl
, Shr
, Sar
二进制位移运算符
二元运算符
+
, -
算术加、减
二元运算符
<
, >
, <=
, >=
, =
, <>
比较运算符
二元运算符
And
, Or
, Xor
并且、或者、异或
二元运算符
Not
逻辑否
一元运算符