Difference between revisions of "LSL Operators"
Jump to navigation
Jump to search
m |
(work in progress) |
||
Line 46: | Line 46: | ||
|- | |- | ||
| = += -= *= /= %= || Assignment || four = 4; | | = += -= *= /= %= || Assignment || four = 4; | ||
|} | |||
{| {{Prettytable}} | |||
|+ | |||
==+ Operator== | |||
<code>left + right</code> | |||
|-{{Hl2}} | |||
!Left Type | |||
!Right Type | |||
!Result Type | |||
!Description | |||
|- | |||
|integer | |||
|integer | |||
|integer | |||
|Adds '''left''' and '''right''' | |||
|- | |||
|integer | |||
|float | |||
|float | |||
|Adds '''left''' and '''right''' | |||
|- | |||
|float | |||
|integer | |||
|float | |||
|Adds '''left''' and '''right''' | |||
|- | |||
|string | |||
|string | |||
|string | |||
|Concatenates '''right''' onto the end of '''left'''. | |||
|- | |||
|list | |||
|* | |||
|list | |||
|Concatenates '''right''' onto the end of '''left'''. | |||
|- | |||
|* | |||
|list | |||
|list | |||
|Affixes '''left''' onto the start of '''right'''. | |||
|- | |||
|vector | |||
|vector | |||
|vector | |||
|Adds '''left''' and '''right''' | |||
|- | |||
|rotation | |||
|rotation | |||
|rotation | |||
|Adds '''left''' and '''right'''<br/>Not useful for combining rotations, use [[#* Operator|*]] or [[#/ Operator|/]] instead. | |||
|} | |} | ||
{{LSLC|}}{{LSLC|Syntax}}{{LSLC|Keywords}} | {{LSLC|}}{{LSLC|Syntax}}{{LSLC|Keywords}} |
Revision as of 17:02, 18 September 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Operators are used to cause an operation (or mathematical action) to be performed on two operands. The easy and common example is 1 + 2 where 1 and 2 are operands, and the + is the operator.
This concept can be extended much further with LSL since operands can be variables with the special case of the assignment operators requiring that the left hand side be a variable.
Operator | Description | Usage Example |
---|---|---|
() [] . | Parenthesis, Brackets, and Dot | do this second (do this first) |
(type) | Typecasting | message = "The result is:" + (string) result; |
! ~ ++ -- | NOT, One's Complement, Increment, Decrement | counter++; |
* / % | Multiply, Divide, Modulus | rollover = (count + 1)%5; |
- | Subtraction | one = 3 - 2; |
+ | Addition or joining Strings | two = 1+1;
text = "Hello" + "World"; |
+ | Concatenation or joining Lists | myList = [1, 2, 3] + [4, 5];
newList = oldList + addList; |
<< >> | Left Shift, Right Shift | eight = 4 << 1; |
< <= > >= | Less Than, Less Than Or Equal To,
Greater Than, Greater Than or Equal To |
isFalse = (6 <= 4); |
== != | Comparison Equal, Comparison Not Equal | isFalse = ("this" == "that"); |
& | Bitwise AND | zero = 4 & 2;
four = 4 & 4; |
^ | Bitwise XOR | zero = 4 ^ 4;
six = 4 ^ 2; |
| | Bitwise OR | four = 4 | 4;
six = 4 | 2; |
&& | Comparison AND | isFalse = (FALSE && TRUE); |
|| | Comparison OR | isTrue = (FALSE || TRUE); |
= += -= *= /= %= | Assignment | four = 4; |
Left Type | Right Type | Result Type | Description |
---|---|---|---|
integer | integer | integer | Adds left and right |
integer | float | float | Adds left and right |
float | integer | float | Adds left and right |
string | string | string | Concatenates right onto the end of left. |
list | * | list | Concatenates right onto the end of left. |
* | list | list | Affixes left onto the start of right. |
vector | vector | vector | Adds left and right |
rotation | rotation | rotation | Adds left and right Not useful for combining rotations, use * or / instead. |