LSL Operators/pl

From Second Life Wiki
Jump to navigation Jump to search

Operatory służą do wykonywania działań (głównie matematycznych, ale nie tylko) na dwóch składnikach. Prostym przykładem jest 1 + 2, gdzie 1 i 2 są składnikami, a + jest operatorem (w tym przypadku działania dodawania)

To pojęcie jest rozszerzone w języku LSL, ponieważ składniki mogą być zmiennymi. Przypadkiem szczególnym jest tu operator przypisania, który wymaga żeby składnik z jego lewej strony był zmienną.

Operator Opis Przykład
() [] . Nawiasy, Nawiasy kwadratowe, Kropka Zrób to potem (a to najpierw)
(typ) Rzutowanie na typ message = "Wynik to:" + (string) wynik;
! ~ ++ -- NOT, Dopełnienie, Zwiększenie, Zmniejszenie licznik++;
* / % Mnożenie/Iloczyn skalarny, Dzielenie, Wartość bezwzględna(moduł)/Iloczyn kartezjański przepełnienie = (licznik + 1)%5;
- Odejmowanie jeden = 3 - 2;
+ Dodawanie lub Łączenie łańcuchów (konkatenacja) dwa = 1+1;

tekst = "Witaj" + "Świecie";

+ Łączenie (konkatenacja) list mojaLista = [1, 2, 3] + [4, 5];

nowaLista = staraLista + dodanaLista;

<< >> Przesunięcie (bitowe) w lewo, w prawo osiem = 4 << 1;
< <= > >= Mniejsze niż, Mniejsze niż lub równe,

Większe niż, Większe niż lub równe

toFałsz = (6 <= 4);
==  != Porównanie jest równe, nie jest równe toFałsz = ("this" == "that");
& Bitowe AND zero = 4 & 2;

cztery = 4 & 4;

^ Bitowe XOR zero = 4 ^ 4;

sześć = 4 ^ 2;

| Bitowe OR cztery = 4 | 4;

sześć = 4 | 2;

|| Logiczne (boolowskie) OR toPrawda = (FALSE || TRUE);
&& Logiczne (boolowskie) AND toFałsz = (FALSE && TRUE);
= += -= *= /= %= Przypisanie cztery = 4;


Uwaga: Kolejność operatorów logicznych (boolowskich) nie jest jasno określona. Możliwe że jest błąd w procesorze (parserze) wyrażeń, który powoduje brak spójności, albo || i && mają równe priorytety; Testy nie dają odpowiedzi. Jeżeli coś nie działa jak się spodziewasz, użyj nawiasów.


+ Operator

wynik = lewa + prawa

Typ lewej Typ prawej Typ Wyniku Opis
integer integer integer Suma lewej i prawej
integer float float Suma lewej i prawej
float integer float Suma lewej i prawej
string string string Łączy (konkatenuje) prawą do końca lewej.
list * list Łączy (konkatenuje) prawą do końca lewej.
* list list Łączy (konkatenuje) lewą do początku prawej.
vector vector vector Dodaje (wektorowo) lewą do prawej
rotation rotation rotation Dodaje (wektorowo) lewą do prawej
Nie należy używać do składania obrotów! W zamian użyj * lub /.