表达式和转换

Blitz 支持以下运算符,其顺序为优先级从高到低:

关键字类型一元 / 二元

New, First, Last

自定类型运算符

一元运算符

Before, After

对象运算符

一元运算符

Int, Float, Str

类型转换运算符

一元运算符

+, -, ~

按位运算符

一元运算符

^

幂运算符

二元运算符

*, /, Mod

算术乘、除、模

二元运算符

Shl, Shr, Sar

二进制位移运算符

二元运算符

+, -

算术加、减

二元运算符

<, >, <=, >=, =, <>

比较运算符

二元运算符

And, Or, Xor

并且、或者、异或

二元运算符

Not

逻辑否

一元运算符

一元运算符需要一个操作数,而二元运算符需要两个操作数。

算术运算符产生与操作数数据类型相同的数据。例如,两个整数值相加将产生一个整数值结果。

如果二元运算符或比较运算符的两个操作数不同,则使用以下转换规则进行转换:

  • 如果其中一个操作数是自定类型对象,则另一个必须是相同类型的对象,否则返回 Null

  • 如果其中一个操作数是字符串,则另一个将转为字符串。

  • 如果其中一个操作数是浮点值,则另一个将转为浮点值。

  • 否则,两个操作数必须为整数值。

当浮点值转换到整数值时,该值将舍入为最接近的整数值。当整数值和浮点值转换为字符串时,将转换为数字的字符串表达形式。

当字符串转换为整数值或浮点值时,字符串将在第一个非数字字符或结尾处停止转换。

字符串唯一可以使用的运算符是 +,它被用于连接两个字符串。

IntFloatStr 可以用于转换值。它们的后面可以跟随适当的类型标签,例如:Int%Str$Float#

比较运算符始终产生整数值结果:1 代表真,0 代表假。

如果其中一个操作数是自定类型对象,则另一个操作数必须是相同类型的对象,或者为 Null,并且允许使用的唯二运算符是比较运算符 =<>

按位运算符和逻辑运算符将始终将其操作数转换为整数值,并产生整数值结果。

逻辑否运算符将在操作数非 0 时返回 0,反之则为 1。当表达式被用于条件执行代码中时(例如 If 语句),结果将被转换为整数值,非 0 结果为真,0 则为假。

最后更新于