Scripting:Operators
From STNE Wiki
Contents |
Table
In this section, a and b represent either literal values, object references or expressions evaluating to the appropriate type.
String operators
Operator name | Syntax |
---|---|
Concatenation | a & b |
Comparison operators
Operator name | Syntax |
---|---|
Equals | a = b |
References equal | a Is b |
Not equal to | a <> b |
Greater than | a > b |
Less than | a < b |
Greater than or equal to | a >= b |
Less than or equal to | a <= b |
Arithmetic operators
Operator name | Syntax |
---|---|
Assignment | a = b |
Addition | a + b |
Subtraction | a - b |
Multiplication | a * b |
Division | a / b |
Increment | a++ |
Increment | ++a |
Decrement | a-- |
Decrement | --a |
Logical operators
Operator name | Syntax |
---|---|
Logical NOT | NOT a |
Logical AND | a AND b |
Logical OR | a OR b |
Other operators
Operator name | Syntax |
---|---|
Function call | a() |
Function reference | AddressOf a |
Member b of a | a.b |
Notes
Assignment operator v.s. equals operator
The assignment operator and the equals operator use the same symbol. It depends on the context which operator is used. The assignment operator is used when a line of code follows the syntax Identifier = Value;. In all other cases, the equals operator is used.
Increment and decrement operators
There are two versions of the increment and decrement operators, namely the suffix and the prefix versions. The suffix versions increment or decrements the value hold by the identifier and then returns the old value. The prefix versions increment or decrement the value and return the result.
For example:
Var i As integer = 5; WriteLine(i++); // Writes 5 WriteLine(i); // Writes 6 WriteLine(i--) // Writes 6 WriteLine(i); // Writes 5 i = 5; WriteLine(++i); // Writes 6 WriteLine(i); // Writes 6 WriteLine(--i); // Writes 5 WriteLine(i); // Writes 5
References equal
The References equal operator returns true if both identifiers hold the same reference (or: point to the same object).
For example:
Var i As String = "a"; Var j As String = "a"; WriteLine(i Is j); // false i = j; WriteLine(i Is j); // true
For types defined as Struct in the Object Explorer, this operator will never return true. When assigning one struct variable to another, the value is copied instead of the reference.
AddressOf
The AddressOf operator actually returns a CDelegate instance.
An example:
Var Delegate As CDelegate = AddressOf MyFunction; Function MyFunction() { WriteLine("Hello universe!"); } Delegate.Invoke(); // Writes "Hello universe!";