表达式
表达式是变量、运算符的任意组合,且表达式返回一个单一值。值可以是数字、字符串或逻辑值。
有两种类型的表达式:有些是将值赋给变量,有些则是简单的有一个值。比如表达式 x = 5 用了赋值运算符来将值5赋给x。x = 5 的赋值过程也返回值5。而表达式( 4 + 1)则简单地返回5,它没有执行赋值。
运算符
VSL中有一些类型的运算符:
- 赋值运算符
- 比较运算符
- 算术运算符
- 逻辑运算符
赋值运算符
赋值运算符将值赋给它左边的运算对象(operand),基于它右边运算对象的值。
等号 (=) 是赋值运算符的基,x = y 意味着将y的值赋给x。
支持的
运算符 | 意义 |
x += y | x = x + y |
x -= y | x = x - y |
x *= y | x = x * y |
x /= y | x = x / y |
不支持的
运算符 |
x %= y |
x <<= y |
x >>= y |
x >>>= y |
x &= y |
x ^= y |
x |= y |
实例:
void main()
{
int x = 2;
int y = 4;
x += y; // x is equal to 6 x -= 3; // x is equal to 3 x *= y-1; // x is equal to 9 x /= x-y; // x is equal to 1 }
NOTE 赋值运算符表达式在赋值完成后返回它们左边运算对象的值。因此,以下脚本从语法角度是有效的:
void main()
{
int x;
int y;
int z = 10;
x = y = z; // ok, x and y equal to 10 x += y += z; // ok, x equal to 30 and y to 20 x *= y /= z; // ok. x equal to 60 and y to 2 // ... }
比较运算符
比较运算符对它的运算对象进行比较,并返回一个逻辑值,基于比较结果是否为真。这里是VSL支持的比较运算符。
运算符 | 意义 | 说明 |
== | 相等 | 如果运算对象相等,返回true。 |
!= | 不等 | 如果运算对象不相等,返回true。 |
> | 大于 | 如果左边运算对象大于右边的,返回true。 |
>= | 大于等于 | 如果左边运算对象大于或等于右边的,返回true。 |
< | 小于 | 如果左边运算对象小于右边的,返回true。 |
<= | 小于等于 | 如果左边运算对象小于或等于右边的,返回true。 |
实例:
void main()
{
int i = 10;
float f = 2.3;
bool b1 = i > f; // b1 equal to true bool b2 = b1 == i; // b2 equal to false i = b1 != b2; // i equal to 1; }
算术运算符
算术运算符将数值作为它们的运算对象并返回一单个数值。
运算符 | 意义 | 描述 |
+ | 加法 | 二元运算符。让它的两个运算对象相加。运算对象可以为整型或浮点型。 |
- | 减法 | 二元运算符。将第一个运算对象减去第二个运算对象。可以为整型或浮点型。 |
* | 乘法 | 二元运算符。让它的两个运算对象相乘。 |
<script src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript"></script> 5%" valign="top">/ | 除法 | 二元运算符。让第二个运算对象去除第一个运算对象。 |
% | 取余 | 二元运算符。返回两个运算对象相除后的整数部分。 |
++ | 增加 | 一元运算符。将它的运算对象加1。如果是前置运算符(++x),则在加1后返回它的运算对象;如果是后置运算符(x++),则在加1之前返回运算对象的值。 |
-- | 减少 | 一元运算符。将它的运算对象减1。返回值情况类似增加运算符。 |
(Unary) - | 一元求负 | 一元运算符。返回它运算符的负值。 |
实例:
void main()
{
int i1 = 42;
int i2 = 123;
float f1 = .2;
float f2 = 3567.3623;
int r1 = i2-i1; // r1 equal 81 float r2 = i2*f1; // r2 equal to 24.6 int r3 = i2/2; // r3 equal to 61 int r4 = f1*f2; // r4 equal to 713 float r5 = f1*f2; / r5 equal to 713.472473 }
void main()
{
int a = 10;
a++; // a equal to 11 int b = ++a; // a and b equal to 12 int c = a--; // a equal to 11 and c equal to 12 }
逻辑运算符
逻辑运算符 与(&&) 和 或 (||),用于将多个关系表达式或等式形式的条件组合起来。
Operator | Meaning | Description |
&& | 逻辑 与 | Returns true if both operands are true, otherwise, returns false. |
|| | 逻辑 或 | Returns true if either operand is true, if both are false, returns false. |
! | 逻辑 否 | Returns true if operand is false, else returns false. |
实例:
void main()
{
Entity3D ent = Entity3D.Cast(bc.GetOwner());
if (ent && ent.CanBeHide()) // if ent is null (false), expression ent.CanBeHide() is not evaluated { // ... } }